Vahan
Vahan

Reputation: 3268

Why getListView().getChildAt() method returns null in filled ListView?

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

Answers (2)

Korhan Ozturk
Korhan Ozturk

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

Akshay
Akshay

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

Related Questions