Autore Topic: Creare un certo numero di checkBox dinamiche e inserirle in una gridview  (Letto 812 volte)

Offline Giusy

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    ACER liquid Mini
  • Sistema operativo:
    Mac OS X 10.5
Salve a tutti sto cercando di realizzare la seguente cosa: ho una gridview, all'interno di essa devo inserire un certo numero di checkbox ognuna contente la descrizione di un oggetto che ho chiamato sensore. Ho provato a scrivere il seguente codice:

File xml per il layout
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/linearLayout1"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent" >

                <GridView
                    android:id="@+id/gridviewSensori"
                    android:layout_width="fill_parent"
                    android:layout_height="136dp"
                    android:columnWidth="90dp"
                    android:gravity="left"
                    android:horizontalSpacing="100dp"
                    android:numColumns="2"
                    android:stretchMode="columnWidth"
                    android:verticalSpacing="10dp" />

    </LinearLayout>


Codice (Java): [Seleziona]
public class TextAdapter extends BaseAdapter {
       
        private Context mContext;
        private List<String> listaSensoriString;
       
        public TextAdapter(Context c, List<String> l) {
                this.mContext = c;
                this.listaSensoriString = l;
        }

        @Override
        public int getCount() {
               
                return listaSensoriString.size();
        }

        @Override
        public Object getItem(int position) {
                return null;
        }

        @Override
        public long getItemId(int position) {
                // TODO Auto-generated method stub
                return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
                CheckBox checkbox = new CheckBox(mContext);
                checkbox.setText("prova");
                return checkbox;
        }

Codice (Java): [Seleziona]
public class MisuraGraficoActivity extends Activity {
       
        private TextView textViewStazione;
        public static final String DESCRIZIONE = "DESCRIZIONE";
       
         public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.misuragrafico);
                Intent intent = getIntent();
                String stazione = intent.getStringExtra("StazioneSelezionata");
                List<Sensore> listaSensori = Modello.getListaSensori(stazione);
                List<String> listaSensoriString = new ArrayList<String>();
                for (int i = 0; i < listaSensori.size(); i++) {
                        Sensore s = listaSensori.get(i);
                        listaSensoriString.add(s.getDescrizione());
                }
                GridView gridview = (GridView) findViewById(R.id.gridviewSensori);
                gridview.setAdapter(new TextAdapter(this, listaSensoriString));
          }
}


In questo modo creo un certo numero di checkbox però con il testo "prova".  Io vorrei sostituire al testo prova la descrione del sensore ... ma non riesco a capire come fare perché se passo scrivo: checkBox.setText(sensore.getDescrizione()) ottengo sempre la stessa descrizione!!!! Qualcuno sa darmi un aiutino, un suggerimento??Grazie!!!!
« Ultima modifica: 14 Aprile 2012, 12:36:25 CEST da Giusy »

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creare un certo numero di checkBox dinamiche e inserirle in una gridview
« Risposta #1 il: 14 Aprile 2012, 23:38:10 CEST »
0
Spero di aver capito e non crearti confusione.
Potresti crearti una classe, che tra le varie proprietà contiene la descrizione.
Ogni volta che crei una checkbox instanzi la classe impostanto tutte le proprietà compresa la descrizione.
Oppure se le descrizioni sono statiche per ogni checkbox, puoi crearti un elenco di descrizioni con le shared preferences es:

Cella1="descrizione1"
Cella2="descrizione2" ecc...
Ad ogni creazione della checkbox prelevi la descrizione che ti serve(potrebbe tornarti utile avere un contatore).
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline lelletta

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:Creare un certo numero di checkBox dinamiche e inserirle in una gridview
« Risposta #2 il: 16 Aprile 2012, 10:28:01 CEST »
0
sostituisci:
checkbox.setText("prova");
con:
checkbox.setText(" "+listaSensoriString[position]);