Autore Topic: Creare un alert in un widget  (Letto 990 volte)

Offline Christian Giupponi

  • Utente junior
  • **
  • Post: 128
  • Respect: 0
    • Google+
    • http://it.linkedin.com/pub/christian-giupponi/29/628/810
    • ultimoprofeta
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ItalianDevTeam
  • Sistema operativo:
    Mac OSX Lion
Creare un alert in un widget
« il: 11 Settembre 2011, 18:32:38 CEST »
0
Salve a tutti,
sapete dirmi se è possibile creare un alert all'avvio di un widget? ho provato ma quando faccio

Codice (Java): [Seleziona]
AlertDialog.Builder alertDialog =  new AlertDialog.Builder(this);
Eclipse mi dice che non esiste un costruttore che accetta un argomento del tipo AppWidgetProvider

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Creare un alert in un widget
« Risposta #1 il: 11 Settembre 2011, 19:22:00 CEST »
0
Non è che si deve sempre mettere this.
Devi passare un oggetto di tipo Context, nelle activity passi this perchè Activity deriva/implementa Context ma in un altro componente devi passare magari un altra cosa.
Nei vari metodi che sovrascrivi nel tuo AppWidgetProvider comunque il context ti viene passato, dovrebbe essere sufficiente passargli quello.

Offline Christian Giupponi

  • Utente junior
  • **
  • Post: 128
  • Respect: 0
    • Google+
    • http://it.linkedin.com/pub/christian-giupponi/29/628/810
    • ultimoprofeta
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ItalianDevTeam
  • Sistema operativo:
    Mac OSX Lion
Re:Creare un alert in un widget
« Risposta #2 il: 11 Settembre 2011, 19:58:26 CEST »
0
ok quella parte è stata risolta, grazie mille, non avevo proprio pensato di passargli il context!  :D

Adesso però il widget crasha proprio nel momento in cui va a richiamare l'alert, ecco il messaggio di errore:

Codice: [Seleziona]
09-11 19:51:43.564: ERROR/AndroidRuntime(275): java.lang.RuntimeException: Unable to start receiver com.italiandevteam.creditotim.CreditoTimProvider: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2646)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.access$3100(ActivityThread.java:119)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.os.Looper.loop(Looper.java:123)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.main(ActivityThread.java:4363)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at java.lang.reflect.Method.invokeNative(Native Method)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at java.lang.reflect.Method.invoke(Method.java:521)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at dalvik.system.NativeStart.main(Native Method)
09-11 19:51:43.564: ERROR/AndroidRuntime(275): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.view.ViewRoot.setView(ViewRoot.java:472)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.app.Dialog.show(Dialog.java:239)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at com.italiandevteam.creditotim.CreditoTimProvider.chiediAlert(CreditoTimProvider.java:157)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at com.italiandevteam.creditotim.CreditoTimProvider.onUpdate(CreditoTimProvider.java:32)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.appwidget.AppWidgetProvider.onReceive(AppWidgetProvider.java:61)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2637)
09-11 19:51:43.564: ERROR/AndroidRuntime(275):     ... 10 more


Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Creare un alert in un widget
« Risposta #3 il: 11 Settembre 2011, 20:33:12 CEST »
+1
Probabilmente non puoi mostrare un dialog da un widget... non ci ho mai provato quindi non saprei dirti con certezza.
Potresti però creare un'activity, stilizzarla come un dialog e far partire quella :)

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Creare un alert in un widget
« Risposta #4 il: 11 Settembre 2011, 23:50:23 CEST »
0
[...]
Potresti però creare un'activity, stilizzarla come un dialog e far partire quella :)

Signori, quest'uomo ne sa sempre una più del demonio! ;)
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re: Re:Creare un alert in un widget
« Risposta #5 il: 12 Settembre 2011, 07:08:20 CEST »
0
Signori, quest'uomo ne sa sempre una più del demonio! ;)

Ho solo googlato :P

Sent from my HTC Desire