Autore Topic: Problemi con dialog...  (Letto 499 volte)

Offline getnut

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Gti 9100
  • Sistema operativo:
    Windows
Problemi con dialog...
« il: 19 Settembre 2013, 18:25:30 CEST »
0
Salve sono un neofita di android.
Cio' che voglio fare è creare un dialog che si apra nel momento in cui viene cliccato un elemento di una ListView ma purtroppo mi da questo errore: "android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application"

il codice in questione è questo:
Codice: [Seleziona]
public void startLista(final String[] user,final int[] annoI,final int[] annoF,final int[] oraI,final int[] oraF,final int[] meseI,final int[] meseF,final int[] giornoI,final int[] giornoF,final int[] minutoI,final int[] minutoF){
        ListView listView = (ListView)findViewById(R.id.listViewPart);
        final Context context = getApplicationContext();
        ArrayAdapter<String> arrayAdapter =new ArrayAdapter<String>(this, R.layout.row, R.id.textViewList, user);
        listView.setAdapter(arrayAdapter);
        listView.setOnItemClickListener(new OnItemClickListener() {
                  @Override
                  public void onItemClick(AdapterView<?> parent, View view,int i, long id) {
                                DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {
                                        switch (which){
                                        case DialogInterface.BUTTON_POSITIVE:
                                            //Yes button clicked
                                                dialog.dismiss();
                                            break;
                                        }
                                    }
                                };
                                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                                builder.setMessage("\n----------INFORMAZIONI!----------\nUsername - "+user[i]+"\nData arrivo - "+giornoI[i]+"/"+meseI[i]+"/"+annoI[i]+
                                                                        "\nOra arrivo - "+oraI[i]+" : "+minutoI[i]+"\n\nData fine - "+giornoF[i]+"/"+meseF[i]+"/"+annoF[i]+"\nOra fine - "+oraF[i]+" : "+minutoF[i]).setPositiveButton("Ok!", dialogClickListener).show();                        
                  }
                });
        }

Qualcuno sa aiutarmi?

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Problemi con dialog...
« Risposta #1 il: 19 Settembre 2013, 18:46:15 CEST »
0
Il problema sta in context. Questo metodo è all'interno di una Activity? Se si al posto di context metti semplicemente this
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline getnut

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Gti 9100
  • Sistema operativo:
    Windows
Re:Problemi con dialog...
« Risposta #2 il: 19 Settembre 2013, 19:30:54 CEST »
0
se metto this a posto di context mi da errore proprio eclipse! ???
mi dice "The constructor AlertDialog.Builder(new AdapterView.OnItemClickListener(){}) is undefined"

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Problemi con dialog...
« Risposta #3 il: 19 Settembre 2013, 19:49:40 CEST »
0
Al posto di
Codice (Java): [Seleziona]
final Context context = getApplicationContext();
metti
Codice: [Seleziona]
final Context context = this;
e lascia il resto del codice invariato come nel primo post
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline getnut

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Gti 9100
  • Sistema operativo:
    Windows
Re:Problemi con dialog...
« Risposta #4 il: 20 Settembre 2013, 11:07:35 CEST »
0
Ora funziona grazie mille! ;-)  Ma riesci a spiegarmi il perchè?

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Problemi con dialog...
« Risposta #5 il: 20 Settembre 2013, 12:58:32 CEST »
0
il Context che vuole AlertDialog.Builder è, in realtà, il Context di un'Activity. Per questo motivo bisogna usare this (che fa riferimento all'Activity in cui si sta operando) invece di getApplicationContext che non fornisce un'Activity  :-)
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy