Как определить, на каком ListView произошел onItemClick?

1

В Activity меня есть два ListViews но теперь я должен определить, на что нажал пользователь ListView. Я добавил adapters и setOnItemClickListener(this); для каждого ListView.

@Override
public void onItemClick(AdapterView<?> a, View v, int i, long l) {
    switch (v.getId()) {
        case R.id.list_1:
            Toast.makeText(this, "111111111", 0).show();
            break;
        case R.id.list_2:
            Toast.makeText(this, "222222222", 0).show();
            break;
    }
}

Но v.getId() возвращает -1

Теги:
listview

2 ответа

4
Лучший ответ

используйте a.getId() вместо v.getId()

я имею в виду использование AdapterView<?> a

switch (a.getId()) {
        case R.id.list_1:
            Toast.makeText(this, "111111111", 0).show();
            break;
        case R.id.list_2:
            Toast.makeText(this, "222222222", 0).show();
            break;
    }
1

в onCreate(), получить ссылки на ваши списки:

listview1 = findViewById(R.id.list_1);
listview2 = findViewById(R.id.list_2);

то в onItemClicked() вы можете протестировать следующим образом:

 if (a == listview1){
       //something
    }
 else if(a==listview2){
      //something
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню