Ho un ListView
dove ogni elemento nella lista contiene un TextView e due diversi pulsanti. Qualcosa come questo:
ListView
--------------------
[Text]
[Button 1][Button 2]
--------------------
[Text]
[Button 1][Button 2]
--------------------
... (and so on) ...
Con questo codice posso creare un OnItemClickListener
per l'intero articolo:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
Log.i(TAG, "onListItemClick: " + position);
}
}
});
Tuttavia, non voglio che l'intero elemento sia selezionabile, ma solo i due pulsanti di ciascun elemento dell'elenco.
Quindi la mia domanda è: come posso implementare un onClickListener per questi due pulsanti con i seguenti parametri:
int button
(quale pulsante dell'elemento è stato cliccato)int position
(che è l'elemento nell'elenco in cui si è verificato il clic del pulsante)
Aggiornamento: ho trovato una soluzione come descritto nella mia risposta di seguito. Ora posso fare clic / toccare il pulsante tramite il touchscreen. Tuttavia, non riesco a selezionarlo manualmente con la trackball. Seleziona sempre l'intera voce dell'elenco e da lì passa direttamente alla voce di elenco successiva ignorando i pulsanti, anche se ho impostato .setFocusable(true)
e setClickable(true)
per i pulsanti getView()
.
Ho anche aggiunto questo codice al mio adattatore elenco personalizzato:
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
Questo fa sì che nessun elemento dell'elenco sia più selezionabile. Ma non ha aiutato a rendere selezionabili i pulsanti nidificati.
Qualcuno ha un'idea?