#java #android #listview
У меня проблема с нажатием в 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()); } });
Ответы
Ответ 1
Ваша ошибка в том, что вы пытаетесь получить 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
Комментариев нет:
Отправить комментарий