Voglio disabilitare/abilitare tutte le caselle in listview. infatti voglio ottenere selezionare tutto il comportamento facendo clic sulla casella di controllo in alto.Casella di controllo Android listview select all (disable/enable)
grazie
Voglio disabilitare/abilitare tutte le caselle in listview. infatti voglio ottenere selezionare tutto il comportamento facendo clic sulla casella di controllo in alto.Casella di controllo Android listview select all (disable/enable)
grazie
Questo è quello che finalmente ha funzionato per me, dove sto utilizzando un adattatore cursore, non solo un ArrayListAdapter
per le mie voci di elenco:
final ListView list = getListView();
for (int i=0; i< getListAdapter().getCount(); i++) {
list.setItemChecked(i, true);
}
list.getChildCount
non funziona perché sembra solo contare ciò che è stato disegnato immediatamente (non tutto ciò che è fuori dallo schermo) quindi childCount
potrebbe essere solo 6 o 8 elementi quando l'intero elenco è composto da 100 o più elementi. Inoltre, come ho dovuto usare list.setItemChecked
per ottenere gli elementi di 'rimanere controllato' - almeno nel mio caso in cui le mie voci di elenco erano istanze di CheckedTextView
.
for(int i=0; i < listView.getChildCount(); i++){
RelativeLayout itemLayout = (RelativeLayout)listView.getChildAt(i);
CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.MyListViewCheckBox);
cb.setChecked(true);
}
è necessario modificare il codice per gestire sia abilitazione e disabilitazione, ma spero che si ottiene l'idea!
Inoltre, questo controlla solo ciascuna casella di controllo, assicurarsi di restituire un ID o un oggetto dall'elenco per inviare/salvare i dati altrove.
ordinati .. grazie mille Abhinav .. molto apprecato –
Questo codice crea un comportamento strano quando controllo tutti gli elementi e quindi deseleziona un elemento. La soluzione di Thom Nichols è migliore. – bancer
Ho dei pulsanti nella mia lista. Quando fai clic su un pulsante al di fuori di listview, ho bisogno di cambiare lo sfondo di tutti i pulsanti presenti nella listview. Ho usato il tuo codice e ho avuto un errore. Come ottenere questo. – Manikandan
basta aggiungere un parametro più adattatore come
Boolean Ex.MyAdapter adapter = new Save_Weight_Adapter(this, R.layout.layoutname, array, false);
listview.setAdapter(adapter);
sul pulsante Seleziona tutto scatto ascoltatore aggiungere questo codice
MyAdapter adapter = new Save_Weight_Adapter(this, R.layout.layoutname, array, true);
listview.setAdapter(adapter);
e il check-in adpater
if(chk) {
blue_check.setVisibility(View.VISIBLE);
} else {
blue_check.setVisibility(View.GONE);
}
Penso che si dovrebbe eseguire questo task di lunga durata dal thread dell'interfaccia utente. Facendo clic sul pulsante in OnClickListener:
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < list.getAdapter().getCount(); i++) {
final int position = i;
mHandler.post(new Runnable() {
@Override
public void run() {
list.setItemChecked(pos, true);
}
});
}
}
}).start();
e in onCreate():
this.mHandler = new Handler();
Ogni elemento nella visualizzazione elenco dovrebbe essere ispezionabile come CheckableRelativeLayout che implementa l'interfaccia controllabile.
Come posso lavorare con pulsanti come questo? – Manikandan
grazie .. ho affrontato difficoltà perché childCount – faruk