Autore Topic: Problema ListView Adapter  (Letto 357 volte)

Offline Andrea°Dev

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony XPeria S
  • Sistema operativo:
    Windows 7
Problema ListView Adapter
« il: 14 Aprile 2014, 16:37:13 CEST »
0
Salve a tutti,

avrei bisogno di sapere come posso mettere una List nella mia ListView.
Mi spiego meglio:

Casse:
Codice (Java): [Seleziona]
        public static class Categoria{
                int ID;
                String descr;
        }

Lista di oggetti:
Codice (Java): [Seleziona]
List<Categoria> Categorie=new LinkedList<Categoria>();
Ora avrei bisogno di mettere le stringhe contenute in
Codice (Java): [Seleziona]
Categorie.descr dentro la mia ListView ma non riesco.

Grazie a tutti per l'aiuto.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema ListView Adapter
« Risposta #1 il: 14 Aprile 2014, 18:07:28 CEST »
0
Il modo più semplice (e grezzo) è copiarsi le stringhe in un ArrayList e tramite un ArrayAdapter lo colleghi alla ListView.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Andrea°Dev

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony XPeria S
  • Sistema operativo:
    Windows 7
Re:Problema ListView Adapter
« Risposta #2 il: 14 Aprile 2014, 18:14:29 CEST »
0
Il problema è che non riesco ad accedere alla colonna descr.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema ListView Adapter
« Risposta #3 il: 14 Aprile 2014, 18:34:50 CEST »
0
Il problema è che non riesco ad accedere alla colonna descr.

Scrivi il codice che stai usando e vediamo di trovare l'errore.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

iClaude

  • Visitatore
Re:Problema ListView Adapter
« Risposta #4 il: 15 Aprile 2014, 10:36:54 CEST »
0
Il problema è che non riesco ad accedere alla colonna descr.

Non è che ti trovi in un package diverso? Se usi String descr, puoi accedere a questa variabile solo dallo stesso package, altrimenti devi dichiararla public...

Offline Andrea°Dev

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony XPeria S
  • Sistema operativo:
    Windows 7
Re:Problema ListView Adapter
« Risposta #5 il: 15 Aprile 2014, 10:41:32 CEST »
0
La mia lista sta nell'Application mentre questa funziona sta in un'altra activity.
Scusate ho dimenticato di specificarlo

Offline Andrea°Dev

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony XPeria S
  • Sistema operativo:
    Windows 7
Re:Problema ListView Adapter
« Risposta #6 il: 16 Aprile 2014, 15:07:34 CEST »
0
Ho risolto utilizzando la funzione getview e dichiarando le liste ArrayList invece di LinkedList.
Posto il codice nel caso serva a qualcun altro.

Codice (Java): [Seleziona]
public class CategorieAdapter extends ArrayAdapter<Categoria> {
    // View lookup cache
    private static class ViewHolder {
        TextView descr;
    }

    public CategorieAdapter(Context context, ArrayList<Categoria> categorie) {
       super(context, R.layout.item_categoria, categorie);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
       // Get the data item for this position
       Categoria categoria = getItem(position);    
       // Check if an existing view is being reused, otherwise inflate the view
       ViewHolder viewHolder; // view lookup cache stored in tag
       if (convertView == null) {
          viewHolder = new ViewHolder();
          LayoutInflater inflater = LayoutInflater.from(getContext());
          convertView = inflater.inflate(R.layout.item_categoria, null);
          viewHolder.descr = (TextView) convertView.findViewById(R.id.descr);
          convertView.setTag(viewHolder);
       } else {
           viewHolder = (ViewHolder) convertView.getTag();
       }
       // Populate the data into the template view using the data object
       viewHolder.descr.setText(categoria.getDescr());
       // Return the completed view to render on screen
       return convertView;
   }
}