Autore Topic: Listview con 2 textview  (Letto 955 volte)

Offline Rickyc81

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Win8
Listview con 2 textview
« il: 12 Ottobre 2013, 15:25:12 CEST »
0
Ciao a tutti, visto il mio codice in http://www.anddev.it/index.php/topic,12271.0.html

avrei pensato di prelevare anche il numero di telefono contenuto del db
ma come posso impostarlo sotto il nome e cognome della listview?

devo stravolgere completamente l'adapter o posso usare lo stesso?
Ric

Offline Rickyc81

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Win8
Re:Listview con 2 textview
« Risposta #1 il: 12 Ottobre 2013, 15:38:37 CEST »
0
O posso usare un simpleAdapter dove al text1 gli do' l' array che contiene i nomi e cognomi e al text2 gli do i numeri... Che dite?

Inviato dal mio Nexus 4 con Tapatalk now Free


Offline Rickyc81

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Win8
Re:Listview con 2 textview
« Risposta #2 il: 13 Ottobre 2013, 10:40:18 CEST »
0
Qualche anima pia per un consiglio?  XD

Inviato dal mio Nexus 4 con Tapatalk now Free


Offline Rickyc81

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Win8
Re:Listview con 2 textview
« Risposta #3 il: 14 Ottobre 2013, 14:31:28 CEST »
0
Oh oh... Non vi affollate!! Ah ah ah ... :)

Inviato dal mio Nexus 4 con Tapatalk now Free

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Listview con 2 textview
« Risposta #4 il: 14 Ottobre 2013, 23:01:12 CEST »
0
Ti devi costruire il tuo Adapter.
Devi definire il layout (xml) per la singola riga, dopo di che nell'adapter valorizzi i campi con la tua logica.

Offline Rickyc81

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Win8
Re:Listview con 2 textview
« Risposta #5 il: 15 Ottobre 2013, 01:04:47 CEST »
0
Ti devi costruire il tuo Adapter.
Devi definire il layout (xml) per la singola riga, dopo di che nell'adapter valorizzi i campi con la tua logica.

e che tipo di Adapter mi consigli di utilizzare?

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Listview con 2 textview
« Risposta #6 il: 15 Ottobre 2013, 10:39:42 CEST »
0
Tu stavi usando un arrayAdapter.
Puoi continuare ad usare quello, anche se visto che tu leggi da db per creare l'arrayadapter, sarebbe meglio un cursor adapter.

Offline Rickyc81

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Win8
Re:Listview con 2 textview
« Risposta #7 il: 15 Ottobre 2013, 14:26:37 CEST »
0
Non mi è chiaro come usare il cursorAdapter per popolare le due righe avendo 2 array di stringhe aventi una Nome+Cognome e l'altra i numeri di telefono.....

Perche io al momento lavoro con gli arrayStrig.. Faccio la query che mi tira fuori il contenuto delle colonne "nome" "cognome" "telefono"... Poi prendo i due array contenenti "nome" e "cognome" e li sommo in  "nomecognome" e nel mio caso lo do in pasto all'arrayAdapter che lo mette in listview... Però vorrei mettere anche il numero di telefono sotto nome e cognome... E ho l'array di stringhe contenenti i numeri.. Come posso fare...?


Oppure dovevo pensarci prima e impostare il progetto in una maniera diversa?

al momento, la tabella del db è cosi composta:

_id | nome | cognome | telefono

io voglio visualizzarli in listview visualizzando cognome e nome in un unico rigo e numero di telefono in una riga piu piccola in basso al nome...

 


Inviato dal mio Nexus 4 con Tapatalk now Free
« Ultima modifica: 15 Ottobre 2013, 20:50:37 CEST da Rickyc81 »

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Listview con 2 textview
« Risposta #8 il: 16 Ottobre 2013, 09:44:49 CEST »
+1
Se vuoi usare l'ArrayAdapter, con una struttura dati in cui hai non una sola stringa, ti consiglio di non usare n-array di Stringhe.

Potresti usare un tuo oggetto

Codice (Java): [Seleziona]
public class MioOggetto{
   
      private String nome;
      private String cognome;
      private String .....;
 
     //getter and setter

}

E costruirti poi un tuo ArrayAdapter:
Codice (Java): [Seleziona]
public class MioArrayAdapter extends ArrayAdapter<MioOggetto> {

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
   
           MioOggetto mOggetto= = (MioOggetto) getItem(position);
           
          //if (view==null) {
                   //view = mInflater.inflate(mioLayout, parent, false);
                   //..........
           }
          // Valorizza gli elementi della singola riga prendendoli da mOggetto

    }
}

Chiaramente il codice va rifinito.
Per posizionare gli elementi devi chiaramente costruirti il tuo layout.xml che darai in pasto ad tuo adapter nel metodo getView().


Nel tuo caso, lavorando con un DB, non ha molto senso fare una query, ciclare su tutto il resultSet per popolare un ArrayAdapter da visualizzare.
Potrebbe essere una buona soluzione usare un CursorAdapter e un Loader. (che non si può spiegare in una risposta di un forum....)

Codice (Java): [Seleziona]
public class QuakeAdapter extends CursorAdapter {
 
    @Override
    public void bindView(View view, Context context, Cursor cursor) {

        String keyId = cursor.getString(xxxxx);
        String nome = cursor.xxxxxx

       //valorizzi gli elementi della riga prendendoli dal cursor.

}