Autore Topic: Adapter e  (Letto 628 volte)

Offline gingenzo

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E
  • Play Store ID:
    ginlemon
  • Sistema operativo:
    Ubuntu 11.04
Adapter e
« il: 18 Maggio 2011, 15:19:38 CEST »
0
Salve ragazzi
devo disegnare sullo schermo un numero variabile di Checkbox, quindi ho usato un'adapter per popolare una gridview.

 
Codice (Java): [Seleziona]
      Vector name=new Vector();
        name.add("Giulia");name.add("Alberto");
        name.add("Francesco");name.add("Vincenzo");name.add("Fabrizio");
        ArrayAdapter ad=new ArrayAdapter(this,R.layout.check,R.id.nome, name);
        GridView grid=(GridView)findViewById(R.id.grid);
        grid.setAdapter(ad);

In questo modo mi appare qualcosa del genere

Codice (XML): [Seleziona]
<grid>
<linearlayout>
<checkbox/><textview/>
</linearlayout>
<linearlayout>
<checkbox/><textview/>
</linearlayout>
<linearlayout>
<checkbox/><textview/>
</linearlayout>
</grid>

Ma ora ho un problema, tutte le checkbox hanno lo stesso id! come faccio a sapere ad esempio se sono marcate o meno?
(mi riferisco a quello che si fa con findViewById(id).isChecked()
Qualcuno mi potrebbe indicare come modificare l'adapter in modo che assegni determinati id alle checkbox?

Grazie

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Adapter e
« Risposta #1 il: 18 Maggio 2011, 15:31:17 CEST »
0
Prova a vedere se in questo modo la situazione migliora.

Codice (Java): [Seleziona]
GridView grid=(GridView)findViewById(R.id.grid);
ArrayAdapter ad= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, lv_items));
grid.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)
grid.setAdapter(ad);

Dovresti essere in grado di recuperare quali elementi sono spuntati o meno con i metodi tipo:

AbsListView | Android Developers()
AbsListView | Android Developers)

PS: Il layout sarà sballato ma a quello ci possiamo pensare in un secondo momento.

Offline gingenzo

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E
  • Play Store ID:
    ginlemon
  • Sistema operativo:
    Ubuntu 11.04
Re:Adapter e
« Risposta #2 il: 18 Maggio 2011, 15:45:47 CEST »
0
So di chiedere tanto, ma non riesco a capire come il metodo CheckedItemPositions() dovrebbe essere usato...

mi puoi fare un esempio?

inoltre ottengo questo errore su questa istruzione:

       grid.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)

The method setChoiceMode(int) is undefined for the type GridView   
« Ultima modifica: 18 Maggio 2011, 15:48:44 CEST da gingenzo »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Adapter e
« Risposta #3 il: 18 Maggio 2011, 15:55:31 CEST »
0

grid.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)

The method setChoiceMode(int) is undefined for the type GridView   

Questo è piuttosto strano perchè quel metodo è definito nella classe AbsListView da cui GridView eredita...

Offline gingenzo

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Liquid E
  • Play Store ID:
    ginlemon
  • Sistema operativo:
    Ubuntu 11.04
Re:Adapter e
« Risposta #4 il: 23 Maggio 2011, 11:32:57 CEST »
0
Allora, ho risolto eliminando completamente l'adapter, ho capito (finalmente) che non è quello di cui ho bisogno, adesso ho sostituito la gridView con un semplice LinearLayout, creo gli elementi con inflater e li aggiungo con addView.
Avrei un'altra domanda però: è possibile fare in modo che gli elementi si dispongano automaticamente come succedeva per la gridView? Intendo che voglio che vengano disposti in orizzontale se possibile e in verticale altrimenti.
Grazie :)