Autore Topic: comportamento strano di arrayAdapter  (Letto 620 volte)

Offline jocker99

  • Nuovo arrivato
  • *
  • Post: 39
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy mini 2
  • Sistema operativo:
    debian 6 - 64 bit
comportamento strano di arrayAdapter
« il: 28 Ottobre 2012, 21:38:24 CET »
0
Salve ragazzi volevo un vostro aiuto perche' ho questo errore e non so' dove sto' sbagliando, ho creato una stupida app che mette un arrayList 2 capi di tipo CustomItem, la classe custom item ha due elementi, ora vorrei visualizzarli da una listview ma visualizzo i due campi ma gli elemnti sono solo quelli del secondo campo cioe' io ho due record che hanno entrambi il campo Test 2 .....dove sbaglio?

 
Codice (Java): [Seleziona]
public class Example extends Activity {
        private ArrayList<CustomItem> items;
        private ArrayAdapter<CustomItem> arrayAdapter;
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

ListView listView = (ListView) findViewById(R.id.arrayList);
arrayAdapter = new ArrayAdapter<CustomItem>( this, R.layout.record, R.id.tiloloRecord, createItems())
this, R.layout.record, R.id.tiloloRecord, items) {
public View getView(int position, View convertView, ViewGroup parent) {
return getViewHolder(position, convertView, parent);    }

private View getViewHolder(int position, View convertView,ViewGroup parent) {
                        ViewHolder viewHolder;
                if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.record, null);
                viewHolder = new ViewHolder();
viewHolder.titoloRecordView = (TextView) convertView.findViewById(R.id.tiloloRecord);
viewHolder.descrizioneRecordView = (TextView) convertView       .findViewById(R.id.descrizioneRecord);
convertView.setTag(viewHolder);
        }
 else {
        // La View esiste già per cui possiede già l'holder
        viewHolder = (ViewHolder) convertView.getTag();
                                }
CustomItem item = getItem(position);   
viewHolder.titoloRecordView.setText(item.titoloRecord);
viewHolder.descrizioneRecordView.setText(item.descrizioneRecord);
                        return convertView;
                        }
                };
                listView.setAdapter(arrayAdapter);

/**Creo gli elementi  **/
private ArrayList<CustomItem>  createItems() {
         ArrayList<CustomItem>items=new ArrayList<CustomItem>();
                CustomItem i=new CustomItem();
                i.titoloRecord="TEST 1";
                i.descrizioneRecord="TEST 1 TEST 1";
                               
                items.add(i);
                i.titoloRecord="TEST 2";
                i.descrizioneRecord="TEST 2 TEST 2";
                items.add(i);
                         
         return items;
       
        }
// la classe
        private static class CustomItem {
                public String titoloRecord;
                public String descrizioneRecord;
        }
 
        private static class ViewHolder {
                public TextView titoloRecordView;
                public TextView descrizioneRecordView;
        }
}

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:comportamento strano di arrayAdapter
« Risposta #1 il: 28 Ottobre 2012, 21:43:56 CET »
0
Sbagli a creare l'array:

Codice (Java): [Seleziona]
private ArrayList<CustomItem>  createItems() {
         ArrayList<CustomItem>items=new ArrayList<CustomItem>();
                CustomItem i=new CustomItem();
                i.titoloRecord="TEST 1";
                i.descrizioneRecord="TEST 1 TEST 1";
                               
                items.add(i);
                CustomItem i2=new CustomItem();
                i2.titoloRecord="TEST 2";
                i2.descrizioneRecord="TEST 2 TEST 2";
                items.add(i2);
                         
         return items;
       
        }


Offline jocker99

  • Nuovo arrivato
  • *
  • Post: 39
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy mini 2
  • Sistema operativo:
    debian 6 - 64 bit
Re:comportamento strano di arrayAdapter
« Risposta #2 il: 28 Ottobre 2012, 22:28:42 CET »
0
ho risolto il problema e' che uso due volte la variabile i per aggiungere gli elementi :(