Autore Topic: Custom Dialog non si aggiorna  (Letto 570 volte)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Custom Dialog non si aggiorna
« il: 24 Luglio 2011, 12:16:18 CEST »
0
Scusate, ho un custom dialog che visualizza con un ArrayAdapter<String> una lista di nomi.

Tutto funziona però quando lo riapro, anche se ho aggiunto un nuovo nome all'array, mi visualizza sempre lo stesso dialog. Studiando un attimino la documentazione ho visto che c'è un metodo che si chiama onPrepareDialog che viene richiamato prima della sua creazione però ho provato a metterci dentro un adapter.notifyDataSetChanged() ma non cambia nulla.....allora 2 sono le cose :
1) non ho capito che cavolo ci si deve mettere in questo metodo
2) questo metodo non c'entra nulla ed il problema è un altro.


Chi mi aiuta a capire ? :)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Custom Dialog non si aggiorna
« Risposta #1 il: 24 Luglio 2011, 12:31:28 CEST »
0
Hai 500 post e ancora non hai capito che devi postare un minimo di codice?

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Custom Dialog non si aggiorna
« Risposta #2 il: 24 Luglio 2011, 12:49:22 CEST »
0
Scusa Ricky hai ragione, pensavo che la mia spiegazione fosse esaustiva. Ecco il codice dell'adapter :

Codice (Java): [Seleziona]
adapter_nomi = new ArrayAdapter<nomi>(context, R.layout.dialog_lista_nomi, R.id.r_dialog_nomi, list_nomi){

                        @Override
                        public View getView(int position, View convertView,ViewGroup parent) {
                                ViewHolder holder = null;
                                final String indirizzo;
                                if(convertView==null){
                                        LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                                        convertView = inflater.inflate(R.layout.row_dialog_nomi, null);
                                        holder = new ViewHolder();
                                        holder.nome = (TextView)convertView.findViewById(R.id.r_dialog_nomi);
                                        convertView.setTag(holder);
                                }else{
                                        holder = (ViewHolder)convertView.getTag();
                                }
                                nomi item = getItem(position);
                                holder.nome.setText(item.get("nominativo"));
                                return convertView;
                        }
                };

in pratica io prima aggiorno la variabile list_nomi e poi dall'onPrepareDialog richiamo adapter_nomi.notifyDataSetChange();

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Custom Dialog non si aggiorna
« Risposta #3 il: 24 Luglio 2011, 12:51:52 CEST »
0
Ok, questo è l'adapter. E il resto? :)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Custom Dialog non si aggiorna
« Risposta #4 il: 24 Luglio 2011, 12:52:37 CEST »
0
Dimmi che ti serve esattamente così lo metto, il file è immenso :)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Custom Dialog non si aggiorna
« Risposta #5 il: 24 Luglio 2011, 13:56:00 CEST »
0
Ti posso mettere l'onPrepareDialog

Codice (Java): [Seleziona]
@Override
        protected void onPrepareDialog(int id, Dialog dialog) {
                switch(id){
                case(NOMI):
                        adapter_nomi.notifyDataSetChange();
                break;
                }
        }

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Custom Dialog non si aggiorna
« Risposta #6 il: 24 Luglio 2011, 15:51:37 CEST »
0
Niente ragazzi sbatto la testa da 2 ore ma non riesco proprio a capire come notificare a questo adpater del dialog che i dati sono cambiati !!!!!!  >:( >:( il fatto che anche se metto il notifydatachange nell'onpreparedialog quando chiamo lo showdialog non passa più dall'onCreateDialog ma allora come cavolo devo fare ?!!

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Custom Dialog non si aggiorna
« Risposta #7 il: 27 Luglio 2011, 12:01:06 CEST »
0
Ho risolto, per chi avesse lo stesso problema in pratica deve mettere nell'onCreateDialog solo il codice per creare il Dialog e nell'onPrepare tutto il resto quindi adapter e company