Articles of listview

Android:获取列表视图中可见子项的计数

有没有办法计算可见列表视图子项的数量? 我有一个listview,信息链接到一个可以随时更改的数据库。 当数据库发生变化时,我发出一个广播通知处理列表视图的ui类。 然后更新与改变的数据有关的子元素。 我通过为每个listview项提供一个标记来实现这一点,然后遍历listviews以find与广播中的标记匹配的行。 我想只迭代可见的孩子。 我无需手动更新不可见的视图,因为它们将在创建时反映新数据。 我目前从listView.getfirstVisiblePosition()迭代到listView.getChildCount()。 这比没有好,因为我没有检查可见行上方的行,但我也不想检查它们下面的行。 我检查了android开发人员listView页面并没有find任何东西。 有人知道我可以得到可见孩子的数量吗? 谢谢!

如何在Android listview中实现分页

我正在为Android应用程序工作,我需要在其中显示带有项目的listview。 但是listview中还有更多元素要显示。 我决定实施分页。 我尝试在Google搜索,但没有find任何相关信息。 有人可以帮帮我吗

Android索引超出边界错误,堆栈跟踪中没有应用程序代码

这是堆栈跟踪: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) at java.util.ArrayList.get(ArrayList.java:311) at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:164) at android.widget.ListView.dispatchDrawWithExcessScroll_Default(ListView.java:3354) at android.widget.ListView.dispatchDraw(ListView.java:3054) at android.view.View.draw(View.java:6936) at android.widget.AbsListView.draw(AbsListView.java:3022) at android.view.ViewGroup.drawChild(ViewGroup.java:1646) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.View.draw(View.java:6936) at android.view.ViewGroup.drawChild(ViewGroup.java:1646) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at […]

Android:是否可以刷新列表视图中的一个项目?

我想知道是否可以在列表视图中重新呈现一个元素? 我假设通过调用notifyDatasetChanged()将notifyDatasetChanged()呈现整个列表? 谢谢,

知道ListView中的View何时离开屏幕?

我用谷歌搜索但找不到答案,所以这里…… 我有一个ListView,显示一些文本和图像。 底层适配器出于性能原因(根据推荐的方法)回收视图,并根据Android Developers网站位图页面上的建议使用AsynchTask加载图像。 一切都很顺利,但我有一个问题。 当适配器中的视图被回收时,它仍然具有对旧图像(ImageView)的引用。 如果用户缓慢滚动,则AsynchTask有足够的时间加载新图像并显示它,因此没有可见的新图像重新加载到用户。 但是,如果用户滚动非常快,加载图像的延迟意味着他们在被新图像替换之前看到旧图像(在View被另一个项目使用时加载)。 所以,我的问题是,如何检测屏幕上何时不再显示视图,以便我可以删除图像? 这意味着用户会看到一个空的列表视图项,最终将加载适当的图像,这看起来会更好。 提前谢谢了。 这是列表视图适配器代码。 @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; ListViewHolder viewHolder; // if this is not a recycled view then create a new view for the data… if (view == null) { view = this.inflater.inflate(R.layout.target_list_view_layout, null, true); viewHolder […]

ListView中的EditText不会保持专注

我在ListView每一行中都有一个EditText 。 出于某种原因,当我点击EditText时,它会短暂地获得焦点,但之后立即失去它。 我试过这些东西: listView.setItemsCanFocus(true); editText.setFocusable(true); 当EditText (短暂地)聚焦时, Enter键显示Next并且存在auto-correct bar 。 当它失去焦点时,软键盘保持向上,但Enter键变为Return Arrow , auto-correct bar消失。

使用Listview中的checkbox获取所选项目

我正在创建一个Android应用程序,我有一个ListView,显示我的手机中安装的所有应用程序。 我的ListView是自定义的,它包含一个Icon,TextView和CheckBox,使用的图标是显示应用程序的图标,TextView是显示应用程序的名称,使用CheckBox是确定哪个项目在我选择的ListView。 当我单击应用程序中的按钮时,如何确定在ListView行中选择的CheckBox是什么? 我是Android的新手,所以我不知道我应该做什么方法。 这是我的代码: public class AppInfo { public Drawable icon; public String applicationName; public AppInfo(){ super(); } public AppInfo(Drawable icon, String applicationName){ super(); this.icon = icon; this.applicationName = applicationName; } } import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import android.app.Activity; import android.widget.CheckBox; public class AppInfoAdapter extends […]

使用ListAdapter时ArrayIndexOutOfBoundsException

我正在为ListView使用自定义ListAdapter 。 我不动态地改变任何东西(查看计数,视图types,启用/禁用,我读了其他post,但他们从代码中改变了一些东西)。 我必须执行以下操作来触发exception。 向下滚动到列表底部,然后再向上滚动。 在向上滚动animation的开头,我得到了这个例外。 04-14 09:41:43.907: ERROR/AndroidRuntime(400): FATAL EXCEPTION: main 04-14 09:41:43.907: ERROR/AndroidRuntime(400): java.lang.ArrayIndexOutOfBoundsException 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:4540) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:3370) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.widget.AbsListView.onTouchEvent(AbsListView.java:2233) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.widget.ListView.onTouchEvent(ListView.java:3446) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.view.View.dispatchTouchEvent(View.java:3885) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:903) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at […]

滚动自定义ListView时,checkbox值会更改

我拥有:带有Textviews和checkbox的自定义列表视图。 问题:假设我的屏幕在时间上只能显示6项列表,而其他项目则不可见。 所以我检查了列表中的第一个元素(位置0处的项目)。 我向下滚动查看我的所有列表,当我向上滚动第一个元素(位置0处的项目)时,正确选中了checkbox。 大! 但现在也检查了新项目,例如位置8处的项目(因为当我滚动列表时(对于环形),它成为位置0的新项目。我的屏幕在时间上仅显示7个元素)。 它会被检查,但我从未检查过它! 问题 :我怎么能避免这个问题? 我不希望我没有单击的checkbox更改其状态。 在我的适配器下面的listView与getView函数,我已经实现了setOnCheckedChangeListener: public class NewQAAdapterSelectFriends extends BaseAdapter { private LayoutInflater mInflater; private Person[] data; public NewQAAdapterSelectFriends(Context context) { mInflater = LayoutInflater.from(context); } public void setData(Person[] data) { this.data = data; } @Override public int getCount() { return data.length; } @Override public Object getItem(int item) { return […]

如何在onSizeChanged中设置大小和布局?

我不能让我的元素,例如ListView ,正确resize。 我有一个ListActivity用于搜索,带有仪表板,编辑框和列表视图。 这个想法是在键盘显示时隐藏操作栏。 我扩展了LinearLayout ,以监听视图大小的变化( 这里推荐): public class SizeChangingLinearLayout extends LinearLayout { //… @Override protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld) { View actionbar = mainView.findViewById(R.id.actionbar); if (yNew > yOld) actionbar.setVisibility(View.VISIBLE); else if (yNew < yOld) actionbar.setVisibility(View.GONE); super.onSizeChanged(xNew, yNew, xOld, yOld); } } 操作栏的隐藏/显示按预期工作,但ListView下方与隐藏操作栏的高度相同。 只要任何图形发生变化(例如在编辑框中写入), ListView填补空白。 隐藏键盘时,反向出现类似的行为。 [编辑] 更改其他布局时也会出现同样的问题。 更改onSizeChanged中事物的Visibility直接显示,但在其他一些用户操作重绘这些视图之前,不会显示更改大小和边距。 无效在onSizeChanged无效。 […]