我有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()
上检索列表视图的子项所致,其中与视图相关的任何方法都将返回null(或为空),因为尚未呈现该列表。
一种解决方案是获取列表视图,并在onPostCreate()
方法中设置适配器和侦听器。
关于android - 为什么getListView()。getChildAt()方法在已填充的ListView中返回null?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11878537/