2

我有包含 5000 个项目的列表视图。我想在某个位置获取列表视图项并对其进行处理,我调用 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);






}
4

2 回答 2

1

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

一种解决方案可能是获取您的列表视图并在onPostCreate()方法中设置适配器和侦听器。

于 2012-08-09T07:28:59.273 回答
0

尝试OnItemClickListener()用于获取所选项目

listView.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    String  getSelectedItemOfList = yourList.get(pos); // here you can get selected item.
        }
});

希望这可以帮助。

于 2012-08-09T07:28:38.627 回答