Autore Topic: Gridview con separatori  (Letto 487 volte)

Offline matteopery

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg g2
  • Sistema operativo:
    windows 8
Gridview con separatori
« il: 13 Maggio 2015, 19:06:17 CEST »
0
Ciao a tutti, ho una gridview riempita da un custom adapter con 3 item per riga e vorrei inserire un separatore che divida item di categoria diversa.  E' possibile? :-)
« Ultima modifica: 13 Maggio 2015, 19:40:04 CEST da matteopery »

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 616
  • Respect: +136
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Gridview con separatori
« Risposta #1 il: 14 Maggio 2015, 11:48:06 CEST »
0
Potresti usare un listview in cui ogni elemento è un gridview che contiene gli elementi di una singola categoria
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline matteopery

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg g2
  • Sistema operativo:
    windows 8
Re:Gridview con separatori
« Risposta #2 il: 14 Maggio 2015, 17:30:21 CEST »
0
Si ci avevo pensato anche io ma non so come mettere la gridview nella list, cioè ho creato il custom layout della lista con dentro solo la gridview, ma come faccio a fare in modo che visualizzi qualcosa?(La grid viene riempita regolarmente perchè se la metto senza dietro la lista si vedono tutti gli item)

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 616
  • Respect: +136
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Gridview con separatori
« Risposta #3 il: 14 Maggio 2015, 18:06:31 CEST »
+1
Devi fare un adapter per la lista che riceve un array di array come parametro.
L'array di array conterrà i tuoi elementi raggruppati.

Codice (Java): [Seleziona]
Categoria[] categorie = ...;
MioTipo[][] elementiPerCategoria = new MioTipo[categorie.length][];
for (int i=0; i < categorie.length; i++) {
  int num = numeroOggettiInCategoria(categorie[i]);
  elementiPerCategoria[i] = new MioTipo[num];
  for (int j=0; j < num; j++) {
    elementiPerCategoria[i][j] = ...;
  }
}

L'adapter della lista lavorerà con i gruppi (elemento[gruppo]) e per ognuno di essi fa l'inflate di un GridView al quale passa un array che consiste negli elementi del gruppo (elemento[gruppo][indice])

Quindi avrai, in sintesi:

Codice (Java): [Seleziona]
protected void onCreate(Bundle savedInstanceState) {
  //...
  ListView lv = findViewById(...);
  lv.setAdapter(new CategoriaAdapter(this, resource, elementiPerCategoria));
  //...
}

public class CategoriaAdapter extends ArrayAdapter<MioElemento[]> {
  //...
  public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
      //Fai l'inflate di "elementi_categoria"
      convertView = mInflater.inflate(R.layout.elementi_categoria, null); //mInflater è un inflater
    )
    //...
    GridView gv = convertView.findViewById(R.id.miaGridView); //Griglia all'interno della riga
    gv.setAdapter(new ElementiCategoriaAdapter(context, resource, getItem(position)));
    //...
  }
}

public class ElementiCategoriaAdapter extends ArrayAdapter<MioElemento> {
    //...più o meno quello che fa ora la tua GridView
}

Per quanto riguarda il layout, l'activity dovrà contenere la tua lista. Poi crei un altro layout che rappresenterà un singolo elemento della lista, ossia la griglia, chiamato nell'esempio sopra "elementi_categoria.xml"
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline matteopery

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg g2
  • Sistema operativo:
    windows 8
Re:Gridview con separatori
« Risposta #4 il: 14 Maggio 2015, 19:48:22 CEST »
0
Ho un pò provato prendendo spunto dal tuo codice ma non riesco, ma se volessi solo mettere tutto cioò che ho in una gridview in un item della lista come potri procedere secondo te?Perchè quello che non funziona è il passaggio da grid a list, visto k il passagio tra database e grid mi funziona perfettamente..

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 616
  • Respect: +136
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Gridview con separatori
« Risposta #5 il: 14 Maggio 2015, 20:01:56 CEST »
0
ma se volessi solo mettere tutto cioò che ho in una gridview in un item della lista come potri procedere secondo te?

Le dritte che ti ho dato servono proprio a questo...
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline matteopery

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg g2
  • Sistema operativo:
    windows 8
Re:Gridview con separatori
« Risposta #6 il: 15 Maggio 2015, 12:35:14 CEST »
0
Perfetto grazie sono riuscito a inserire la grid dentro la lista :D Ultimo problema è l'altezza della grid in base al contenuto, ho provato a mettere il wrap_content nella grid ma non funziona e mi si vede solo la prima riga della stessa grid..
« Ultima modifica: 18 Maggio 2015, 16:41:03 CEST da matteopery »