Как вызвать ItemClickListener
программно? listView.performItemClick()
не работает. Это возможно?
Android - Как программно коснуться элемента ListView
comment
PerformItemClick должен работать, возможно, что-то не так с тем, как вы его используете.
- person njzk2   schedule 22.03.2012
comment
@cool dev взгляните на мой новый ответ
- person Tofeeq Ahmad   schedule 15.11.2012
Ответы (6)
mList.performItemClick(
mList.getAdapter().getView(mActivePosition, null, null),
mActivePosition,
mList.getAdapter().getItemId(mActivePosition));
Где mActivePosition — ваша позиция клика!
person
Arun Jose
schedule
29.04.2013
это на самом деле создаст новое представление, так что PerformItemClick будет работать, да, это будет работать, но это не будет то же представление, что и предполагалось, getView в адаптере вводит в заблуждение, он фактически создает представление, и listView использует его для заполнения представления и перерабатывать их
- person ndori; 23.03.2015
Это не создаст представления.
mList.performItemClick(mList.getChildAt(mActivePosition), mActivePosition, mList.getAdapter().getItemId(mActivePosition));
- person Arst; 05.03.2018
@Arst, большое спасибо за идеальное решение.
- person Anirban; 01.04.2021
Если вы хотите щелкнуть/нажать/выбрать 3-й элемент списка, то.
listView.performItemClick(listView.getAdapter().getView(3, null, null), 3, listView.getItemIdAtPosition(3));
Это отлично сработало для меня.
person
Swapnil Godambe
schedule
18.04.2013
Назначьте тег в адаптере для каждого View
и findviewByTag()
, это сработало для меня:
listView.performItemClick(listView.findViewWithTag(listView.getAdapter().getItem(selectedIndex)), selectedIndex, listView.getAdapter().getItemId(selectedIndex));
Также см. этот ответ.
person
user1702512
schedule
13.08.2013
Если вам это нужно для тестирования, вы можете использовать Robotium ( http://code.google.com/p/robotium/ ).
Вы также можете добиться того, чего хотите, вызвав метод onClick
для ClickController
с правильными параметрами.
person
Community
schedule
22.03.2012
Но как вы используете Robotium для этого?
- person Dave Cameron; 28.09.2012
Попросите robotium коснуться текста внутри элемента списка.
- person ; 15.11.2012
Ответ
listView1.performItemClick(listView1, 3, listView1.getItemIdAtPosition(3));
по ссылке
person
Abu Saad Papa
schedule
11.12.2012
Вы можете настроить прослушиватель onItemClick
для просмотра списка через
listView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//here you do something
}
});
person
Artemis
schedule
22.03.2012
Вопрос в том, как программно коснуться элемента ListView? а не о получении события щелчка элемента списка.
- person Zeba; 24.02.2014