Reputation: 3268
I have listview which has 5000 items. I want to get item of listview at some position and do smth with it, I call getListView().getChildAt(1) method and it returns 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);
}
Upvotes: 2
Views: 2818
Reputation: 11308
The problem might be due to trying to retrieve list view's child item on onCreate()
where any view-related methods will return null (or empty) because the list has not been rendered yet.
One solution could be to get your listview and set the adapters and listeners in onPostCreate()
method.
Upvotes: 1
Reputation: 2534
Try to use OnItemClickListener()
for getting selected item
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.
}
});
Hope this helps.
Upvotes: 0