我有一个包含 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/