Articles of listview

ListView – ImageLoader向上移动List / Items

我正在找一个半天的答案,但我找不到任何东西,虽然我认为这是一个普遍的问题。 我的问题:我有一个ListView具有不同大小(高度)的项目。 每个项目都包含一个ImageView 。 这个ImageView的Image由ImageLoader类在后台加载: imageLoader.DisplayImage(url, holder.image); 如果我向下滚动ListView一切工作正常。 图像被加载并显示(当然在屏幕/列表的底部)。 但是,如果我向上滚动,图像不再存储在caching中,所以ImageLoader必须重新加载图像, ListView跳转/项目移动。 我认为这是因为在列表顶部创build了一个新的View ,其中ImageView高度为0dp。 如果图像被加载并设置为ImageView ,则ImageView的高度会自动从0dp更改为图像的大小。 这将推动ListView ,我想。 我试图保存ImageViews的高度,如果一个图像设置,然后将在顶部创build的ImageView的高度设置为保存的高度。 但没有成功.. 我不知道你是否能理解我的问题:希望如此:) 感谢,并有一个愉快的一天! 编辑:添加ImageLoader类 public class ImageLoader { MemoryCache memoryCache=new MemoryCache(); FileCache fileCache; int size; Context context; private Map<ImageView, String> imageViews=Collections.synchronizedMap(new WeakHashMap<ImageView, String>()); private HashMap<String, Integer> imagesSizes; ExecutorService executorService; Handler handler=new Handler();//handler to display images in UI […]

将一个AdMob原生广告放在一个listView中

我想在我的应用中使用新的AdMob原生广告function。 我想将一个原生广告放在一个listView中,列表中的每个第20项左右都是一个广告。 是否可以通过Native Express Ad来实现? 或者我必须使用Natve高级广告?

如何将我在EditText框中键入的数据添加到数组中以在另一个活动中列出?

下面是我用于我的android应用程序开发的3个java类。 我想添加学生数据(姓名和电话号码)从AddActivity存储在MainActivity页面中点击“添加”后。 我研究了这个,并尝试使用一个数组。 但是我很困惑,代码是如何将AddActivity中的数据发送到MainActivity页面的。 任何人都可以给我一个关于如何解决这个问题的指导,如果你能以另一种方式向我展示我的方式,我会非常感激的。 我想在每次“添加”我点击了AddActivity页面后,数据以MainActivity中的ListView格式存储。 我希望有人能够指导我这样做。 谢谢。 MainActivity.java – https://jsfiddle.net/eb1fprnn/ public class MainActivity extends AppCompatActivity { ListView listView; Button addStudent; ArrayList<Student> students = new ArrayList<Student>(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); add(); } public void add() { Student student; addStudent = (Button) findViewById(R.id.add); addStudent.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent […]

在Android中,如何设置ListView项目的高度和宽度?

我想要创build一个界面,其中有一个或两个列表视图最终跨两行的整个屏幕。 我怎样才能改变他们的身高,使他们垂直占据屏幕的50%? 如果是同样的道路,我很乐意知道如何做到这一点,不pipe方向如何。 关于宽度; 让我们说我有两个listview,每个都有一行。 它们如上所述跨越整个屏幕。 在下面的列表视图中有两个可点击的项目,每个项目占据屏幕空间的50%, 水平 。 那可能吗? 如果是这样,怎么样?

在ListView中使用windowSoftInputMode adjustPan编辑文本

我有一个EditText在每一行ListView 。 我已经设置windowSoftInputMode adjustPan在此活动的清单中,所以当我点击一个EditText的布局平底锅,以便它可以在键盘上方可见。 这是我第一次点击一个EditText 。 但是,如果我点击后退button来closures键盘,然后再次点击相同的EditText(不点击其他任何东西,所以光标保留在第一个EditText ),键盘恢复,但布局不会平移这一次。 这样做的结果是EditText被隐藏在键盘后面。 有没有人经历过这种行为/知道如何解决它? 谢谢

在下载文件时更新列表视图中的进度条

我们如何更新ListView中的进度条。 当每个进度条都关联下载一个文件,并通过AsyncTask完成。 那么在哪里更新ProgressBar 在更新进度(我试过这是行不通的) 在查看ListView的充气过程。 (这也不起作用) 基本上我每当我在浏览器中得到像.mp3这样的文件时,我都会调用这个asynctask,所以可以有n个asynctask的实例。 但那么如何用特定的Aysnctask任务来更新特定的进度条。 public class CopyOfDownloadsListActivity extends ListActivity { /** Called when the activity is first created. */ // static ArrayList<String> pthreads = new ArrayList<String>(); static ImageView bt; static ProgressBar pb; static ListView allList; static TextView tv; String fileName; String mp3URL; URL url2; int myProgress; static int filecount = 0; […]

无法parsing方法.runOnUiThread

我在这里发现这个例子,如何使用runOnUiThreaed方法,但我不明白如何使用它。 我在我的主要活动中设置列表适配器 // Set a gobal reference to the list adapter and the list respectivly ListAdapter listAdapter; static ArrayList<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // some code adapter = new ListAdapter(getActivity(), R.layout.item_layout, list); listView.setAdapter(adapter); // some code } 我在这里调用一个服务处理器类的列表适配器 public class ListAdapter { // some code ServiceHandler sh = new ServiceHandler(); […]

Android ListView中的popup菜单问题

我是Android新手,我正在创buildListviewpopup式菜单。 但是我有它的width和height问题。 popup菜单可以占用更多的高度和宽度。 所以有很多问题,但是这些都没有帮助我。 创buildpopup菜单我已经尝试了以下方法 。 1]用下面的代码使用popup式菜单 : private void showPopupMenu(View view){ Context wrapper = new ContextThemeWrapper(this, R.style.PopupMenu); PopupMenu popupMenu = new PopupMenu(wrapper,view); popupMenu.getMenuInflater().inflate(R.menu.popup_menu,popupMenu.getMenu()); popupMenu.show(); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){ @Override public boolean onMenuItemClick(MenuItem item){ switch (item.getItemId()){ case R.id.install: Intent intent = new Intent(ViewAllRelationActivity.this,EditRelativeActivity.class); startActivity(intent); break; case R.id.addtowishlist: break; } return false; } }); } 它给出了这个输出 : 2]使用ContextMenu会显示以下输出 […]

android滚动,而拖放

您好我正在做一个ListView的拖放。 它工作很好。 但是我失去了点击和滚动的能力。 如何保留这两个? 我一直在想,这个拖放应该发生在长时间按下该项目,而不是一个正常的新闻。 这是我的onTouch位于扩展ListView的MyListView @Override public boolean onTouchEvent(MotionEvent ev) { final int action = ev.getAction(); final int x = (int) ev.getX(); final int y = (int) ev.getY(); if (action == MotionEvent.ACTION_DOWN && x < this.getWidth()/4) { this._dragMode = true; } if (!this._isDragNDrop) return super.onTouchEvent(ev); switch (action) { case MotionEvent.ACTION_DOWN: this._startPosition = pointToPosition(x,y); if […]

Android – ListView中绑定到自定义ArrayAdapter的EditTexts – 跟踪更改

我有一个Android的活动,我有一个ListView绑定到一个自定义ArrayAdapter。 ListView的每一行都有两个EditText(数字)字段。 ArrayAdapter最初是从SQLite数据库填充的。 但是,用户可以在ListView的末尾添加一行,或者(通过长按一行)删除ListView中的任何一行。 当他们点击“保存”button时,他们的变化将持续。 通过将AfterTextChanged()事件的CustomTextWatcher附加到ArrayAdapter的getView()方法中的每个EditText(传入EditText和ArrayAdapter的项目列表中相应的对象),然后设置匹配项该对象的属性对EditText的内容。 这样在保存时我可以简单地遍历底层对象列表并进行适当的数据库更改,知道对象列表是最新的。 适配器类和CustomTextWatcher代码: private class CustomAdapter extends ArrayAdapter<DataItem> { private ArrayList<DataItem> items; public CustomAdapter(Context context, int textViewResourceId, ArrayList<DataItem> items) { super(context, textViewResourceId, items); this.items = items; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; DataItem wed = items.get(position); if (v == null) { […]