Autore Topic: EditText in Listview perde il valore dopo lo scrool  (Letto 399 volte)

Offline jack_rooney

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
EditText in Listview perde il valore dopo lo scrool
« il: 19 Febbraio 2014, 11:26:22 CET »
0
Salve,

sono alle prime armi, qualsiasi consiglio è ben accetto.
Il problema è all'interno di una Listview (vari campi popolati dai dati che prelavo dal db) dove ho anche inserito un EditText in cui i valori che inserisco spariscono dopo uno scroll della lista:

Codice (Java): [Seleziona]
public class ArticoliAdapter01 extends ArrayAdapter<Listilsf>{

  public View getView(final int position, View convertView, ViewGroup parent) {

       final EditText qmo = (EditText)convertView.findViewById(R.id.qta_ordinata);

  }

}

il campo qmo lo vado a manipolare (posso sia inserire direttamente valori nell'EditText tramite tastierino oppure attravarso il click su un bottone all'interno della Listview). Ora quando scorro la lista vero il basso o verso l'alto i valori spariscono.

Qualcuno gentilmente mi dà una dritta?
Grazie 1000

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:EditText in Listview perde il valore dopo lo scrool
« Risposta #1 il: 19 Febbraio 2014, 12:07:56 CET »
0
Devi capire il meccanismo con il quale lavorano le liste e gli adapter dietro.
Ogni elemento della lista è collegato ad un elemento dell'adapter.

Il metodo getView() viene chiamato da ogni elemento della lista che è a video (non è esatto veramente, ci sono casi in cui non è vero, ma ora non è rilevante). Con questo metodo tu valorizzi gli elementi a video, partendo dagli elementi dentro l'adapter.

Se scegli di utilizzare un EditText, scelta che personalmente non amo e che si vede poco nel mondo android, devi modificare gli oggetti dentro l'adapter, altrimenti scrollando "lo perdi".

Offline jack_rooney

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
Re:EditText in Listview perde il valore dopo lo scrool
« Risposta #2 il: 19 Febbraio 2014, 12:39:17 CET »
0
cosa significa "andare a modificare gli oggetti dentro l'adapter" ?

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:EditText in Listview perde il valore dopo lo scrool
« Risposta #3 il: 19 Febbraio 2014, 13:05:12 CET »
0
cosa significa "andare a modificare gli oggetti dentro l'adapter" ?

Codice (Java): [Seleziona]
Listilsf  myObj = getItem(position);
myObj.setValue(valoreCampoModificato);