Android: elementy ListView z wieloma klikalnymi przyciskami
mamListView
gdzie każdy element na liście zawiera TextView i dwa różne Przyciski. Coś takiego:
ListView
--------------------
[Text]
[Button 1][Button 2]
--------------------
[Text]
[Button 1][Button 2]
--------------------
... (and so on) ...
Dzięki temu kodowi mogę utworzyćOnItemClickListener
za cały przedmiot:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
Log.i(TAG, "onListItemClick: " + position);
}
}
});
Nie chcę jednak, aby cały element był klikalny, ale tylko dwa przyciski każdego elementu listy.
Moje pytanie brzmi: jak zaimplementować onClickListener dla tych dwóch przycisków o następujących parametrach:
int button
(który przycisk elementu został kliknięty)int position
(który jest elementem na liście, na którym kliknięto przycisk)Aktualizacja: Znalazłem rozwiązanie opisane w mojej odpowiedzi poniżej. Teraz mogę kliknąć / dotknąć przycisk na ekranie dotykowym. Nie mogę jednak ręcznie wybrać go za pomocą trackballa. Zawsze wybiera cały element listy, a stamtąd przechodzi bezpośrednio do następnego elementu listy, ignorując przyciski, mimo że ustawiłem.setFocusable(true)
isetClickable(true)
dla przycisków wgetView()
.
Dodałem również ten kod do mojego adaptera listy niestandardowej:
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
To powoduje, że żaden element listy nie jest już w ogóle wybierany. Ale to nie pomogło w wyborze zagnieżdżonych przycisków.
Czy ktoś ma pomysł?