android - 为什么 getListView().getChildAt() 方法在填充的 ListView 中返回 null?

标签 android android-listview listviewitem

我有一个包含 5000 个项目的 ListView 。 我想在某个位置获取 listview 的项目并对其进行处理,我调用 getListView().getChildAt(1) 方法,它返回 null。

protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_items);

cur = ItemDao.getItemsCursor();
column_names = new String[] { ItemDao.NAME, ItemDao.MEASUREUNIT, ItemDao.REM };
columns = new int[] { R.id.item_name, R.id.item_measureunit, R.id.item_rem };

scadap = new SimpleCursorAdapter(this, R.layout.list_items, cur, column_names, columns, 0);
ListView list = getListView();

list.setDivider(getResources().getDrawable(android.R.drawable.divider_horizontal_bright));
list.setDividerHeight(10);

setListAdapter(scadap);
list.invalidateViews();
  (getListView().getChildAt(getListView().getFirstVisiblePosition())).setVisibility(View.INVISIBLE);






}

最佳答案

问题可能是由于尝试在 onCreate() 上检索 ListView 的子项,其中任何与 View 相关的方法都将返回 null(或空),因为列表尚未呈现。

一个解决方案可能是获取 ListView 并在 onPostCreate() 方法中设置适配器和监听器。

关于android - 为什么 getListView().getChildAt() 方法在填充的 ListView 中返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11878537/

相关文章:

c# - 如何将子项添加到 ListView?

android - 如何根据用户角色打开 Android Activity ?

android - setViewBinder/setViewValue 和 getView/LayoutInflater 的用法有什么区别?

android - Path.reset 与 Path.rewind

android - Gps 状态启用/禁用广播接收器

android - localStorage html5 功能在三星 Android 设备上的 WebView 中不起作用

Android - ListView - 默认列表项(状态)背景颜色

android - AsyncTask 与无尽的 ListView 滚动在 android

c# - 有没有办法将 ContextMenuStrip 分配给 ListViewItem?

android - 升级到 Android 2.3 后出现问题