Autore Topic: Iterazione ListView  (Letto 814 volte)

Offline AleoxFalco

  • Nuovo arrivato
  • *
  • Post: 27
  • Poi ci penso
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    APC 87-50
  • Sistema operativo:
    Windows 7
Iterazione ListView
« il: 08 Febbraio 2013, 12:29:21 CET »
0
Ciao a tutti

ho una custom view caratterizzata da due textbox e una check box.  Ho la necessita di far diventare grigio ( disabilitata ) tutte le checkbox a secondo dello stato logico true/false di una checkbox. Studiando qualcosa in giro ho scritto questa funzioncina:

Codice (Java): [Seleziona]
public void setCheckEnabled(boolean val){              
  for (int i = 0; i < listViewFiltri.getCount(); i++) {
    View rowview = listViewFiltri.getAdapter().getView(i,null, null);    //RIGA EVIDENZIATA
    if (rowview!=null){
      CheckBox cb = (CheckBox)rowview.findViewById(R.id.checkBoxFiltro1);
      cb.setEnabled(val);
      Log.e("row",rowview.toString());
      Log.e("box",cb.toString());
    }
  }
}

la codesta funzione è legata al cambiamento di due radiobox, rispettivamente con valori true e false.
Possibile che non visualizzo i cambiamenti? i checkbox nella lista rimangono sempre disabilitati, come da impostazioni di default xml

personalmente non mi convince la riga evidenziata... non so dove sbattere la testa
« Ultima modifica: 08 Febbraio 2013, 12:33:00 CET da AleoxFalco »

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Iterazione ListView
« Risposta #1 il: 08 Febbraio 2013, 12:42:08 CET »
0
non va bene il modo...
la listview per come è fatta è un mvc, cioè la listview che vedi è la "VIEW", l'adapter è il controller e i dati su cui lavori sono il model.
Tu non devi andare a modificare lo stato della view dal controller, ma devi modificare il model e lasciare fare al sistema!

Cioè devi fare che nella getView dell'adapter (nella classe adapter) disability quello che vuoi in base a un boolean che hai nel model, poi quando ti si verificano le condizioni che vuoi, cambi il boolean nel model.
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline AleoxFalco

  • Nuovo arrivato
  • *
  • Post: 27
  • Poi ci penso
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    APC 87-50
  • Sistema operativo:
    Windows 7
Re:Iterazione ListView
« Risposta #2 il: 08 Febbraio 2013, 12:53:37 CET »
0
tralasciando che mi sfugge completamente il significato del model... credo di aver capito cosa fare.

Devo operare direttamente nel adapter che ho. Creo una funzione che mi gestisce l'abilitazione del checkbox e nel getView richiamandola attivo i cambiamenti. E uso proprio questa funzione nuova per comunicare esternamente con l'adapter. Giusto?

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Iterazione ListView
« Risposta #3 il: 08 Febbraio 2013, 14:05:37 CET »
0
mmm se non sai cosa vuol dire MVC forse un po di "teoria" male non fa...
ad ogni modo, ci sono svariati tutorial sulle listview che usano "model" nel forum, prova a dare un occhio!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia