Autore Topic: Visualizzare alert Dialog da listener  (Letto 1408 volte)

Offline Grifone

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Gratia
  • Sistema operativo:
    Windows 7
Visualizzare alert Dialog da listener
« il: 12 Marzo 2011, 17:27:21 CET »
0
Ciao a tutti, sono nuovo del forum e alla programmazione android, vi scrivo per un problema che ho incontrato e che non sono ancora riuscito a risolvere (molto probabilmente per molti di voi sarà una sciocchezza  :-))
Ho una listView con all'interno diversi elementi (aggiunti dinamicamente) e un listener di tipo OnItemClickListener (anch'esso collegato al listView a runtime). Vorrei che, alla pressione su uno qualsiasi degli elementi della lista, venisse visualizzato un allert dialog, ma quando provo a farlo con il codeiche che vi riporto di seguito l'app crasha.

Codice: [Seleziona]
public class listListener implements OnItemClickListener
            {
                        @Override
                        public void onItemClick(AdapterView<?> arg0, View arg1, int position ,long arg3)
                        {
                                AlertDialog.Builder alertbox = new AlertDialog.Builder(getBaseContext());
                                alertbox.setMessage("Ciao");
                                alertbox.setNeutralButton("OK",null);
                                alertbox.show();
                        }
                   
            }

Dove sbaglio?

P.S. ho effettuato diverse riscerche e si parla spesso dell'argomento ma in ambito di metodi specifici (ad es. onCreate) oppure in listener collegati staticamente.

Grazie mille!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Visualizzare alert Dialog da listener
« Risposta #1 il: 12 Marzo 2011, 17:32:46 CET »
0

Offline Grifone

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Gratia
  • Sistema operativo:
    Windows 7
Re:Visualizzare alert Dialog da listener
« Risposta #2 il: 12 Marzo 2011, 17:38:54 CET »
0

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Visualizzare alert Dialog da listener
« Risposta #3 il: 12 Marzo 2011, 17:43:11 CET »
0
Cosa avrei sbagliato?
Scusami, non capisco

Citazione
Nel caso si verifichino degli errori durante l'esecuzione dell'applicazione, inserisci sempre il LogCat relativo all'errore e il codice corrispondere alla riga a cui l'eccezione del LogCat fa riferimento.

Forse è scritto troppo piccolo :P

Offline Grifone

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Gratia
  • Sistema operativo:
    Windows 7
Re:Visualizzare alert Dialog da listener
« Risposta #4 il: 12 Marzo 2011, 17:55:20 CET »
0
Forse è scritto troppo piccolo :P

Scusa, non avendo nessuna dimestichezza con LogCat e pensando che per errore non si intendessero i crash dell'app ho omesso.
Comunque, visto che non so come fare per postare qui il LogCat e sono riuscito a visualizzarlo in eclipse, mi sapresti dire come fare per esportarlo e poi postarlo qui?

Grazie

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Visualizzare alert Dialog da listener
« Risposta #5 il: 12 Marzo 2011, 17:57:46 CET »
0
Selezioni le righe, copia e incolla.

Offline Grifone

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Gratia
  • Sistema operativo:
    Windows 7
Re:Visualizzare alert Dialog da listener
« Risposta #6 il: 12 Marzo 2011, 18:07:14 CET »
0
Ok, eccole qui. Vanno bene o ne servono delle altre?

Codice: [Seleziona]
03-12 17:05:50.864: WARN/WindowManager(59): Attempted to add window with non-application token WindowToken{44fe26b8 token=null}.  Aborting.
03-12 17:05:50.864: DEBUG/AndroidRuntime(304): Shutting down VM
03-12 17:05:50.864: WARN/dalvikvm(304): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
03-12 17:05:50.884: ERROR/AndroidRuntime(304): FATAL EXCEPTION: main
03-12 17:05:50.884: ERROR/AndroidRuntime(304): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.view.ViewRoot.setView(ViewRoot.java:509)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.app.Dialog.show(Dialog.java:241)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at com.psoft.easybus.SelectStop$stopListListener.onItemClick(SelectStop.java:74)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.widget.AdapterView.performItemClick(AdapterView.java:284)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.widget.ListView.performItemClick(ListView.java:3382)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.os.Handler.handleCallback(Handler.java:587)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.os.Handler.dispatchMessage(Handler.java:92)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.os.Looper.loop(Looper.java:123)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at android.app.ActivityThread.main(ActivityThread.java:4627)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at java.lang.reflect.Method.invokeNative(Native Method)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at java.lang.reflect.Method.invoke(Method.java:521)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-12 17:05:50.884: ERROR/AndroidRuntime(304):     at dalvik.system.NativeStart.main(Native Method)


Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Visualizzare alert Dialog da listener
« Risposta #7 il: 12 Marzo 2011, 18:15:56 CET »
0
Secondo me è un problema di Context che gli passi

Prova a cambiare
Codice (Java): [Seleziona]
AlertDialog.Builder alertbox = new AlertDialog.Builder(getBaseContext());
con
Codice (Java): [Seleziona]
AlertDialog.Builder alertbox = new AlertDialog.Builder(NomeActivity.this);

PS: Utilizza ctrl + alt + f per formattare il codice secondo lo stile Java ;)

Offline Grifone

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Gratia
  • Sistema operativo:
    Windows 7
Re:Visualizzare alert Dialog da listener
« Risposta #8 il: 12 Marzo 2011, 18:18:55 CET »
0
Perfetto, ho risolto. Grazie infinite!!

P.S. sai mica dove posso trovare una guida che spieghi bene i context? Grazie ;)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Visualizzare alert Dialog da listener
« Risposta #9 il: 12 Marzo 2011, 18:21:56 CET »
0
P.S. sai mica dove posso trovare una guida che spieghi bene i context? Grazie ;)

Non saprei... posso solo dirti che ti conviene usare il più possibile NomeActivity.this ;)

Offline Grifone

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Gratia
  • Sistema operativo:
    Windows 7
Re:Visualizzare alert Dialog da listener
« Risposta #10 il: 12 Marzo 2011, 18:31:07 CET »
0
Non saprei... posso solo dirti che ti conviene usare il più possibile NomeActivity.this ;)

Ah ok perfetto allora farò così  :D
Grazie ancora!