У меня проблема с нажатием в Listview после прокрутки.
То есть, если я нажимаю на содержимое, которое было изначально видно, то все ок. Но если я нажимаю прокрутив список (то есть нажимаю на позицию, которая видна не была), то программа вылетает вот с таким текстом в логах:
java.lang.NullPointerException: Attempt to invoke virtual method
'android.view.View android.view.View.findViewById(int)' on a null
object reference
Кто сталкивался?
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View itemClicked, int position, long id) {
TextView tp = (TextView)listView.getChildAt(position).findViewById(R.id.userid);
Log.v("mes",tp.getText().toString());
}
});
Ответ
Ваша ошибка в том, что вы пытаетесь получить View из ListView. Так не надо.
Нужное вам View, т.е. разметка элемента списка - уже передано в виде второго аргумента метода onItemClick(AdapterView parent, View itemClicked, int position, long id). Сделайте так:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View itemClicked, int position, long id) {
TextView tp = (TextView)itemClicked.findViewById(R.id.userid);
Log.v("mes",tp.getText().toString());
}
});
А ещё лучше - повесьте слушатель внутри адаптера. А ещё лучше - перепишите под RecyclerView
Комментариев нет:
Отправить комментарий