Domanda

Mi piacerebbe aprire una finestra di dialogo con alcune semplici informazioni su di esso quando una carta da parati dal vivo è sfruttato. Override OnCommand in una carta da parati dal vivo Android, e l'aggiunta di una finestra personalizzata quasi subito fuori la documentazione Android (con un info_dialog.xml layout non mostrato):

@Override
public Bundle onCommand (String action, int x, int y, int z, Bundle extras, boolean resultRequested)
{
 System.out.println(action);  
 Context mContext = getApplicationContext();
 Dialog dialog = new Dialog(mContext);

 dialog.setContentView(R.layout.info_dialog);
 dialog.setTitle("Custom Dialog");

 TextView text = (TextView) dialog.findViewById(R.id.text);
 text.setText("Hello, this is a custom dialog!");

 dialog.show();

 return null
}    

solo genera un'eccezione:

12-02 07:14:40.880: ERROR/AndroidRuntime(295): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
12-02 07:14:40.880: ERROR/AndroidRuntime(295):     at android.view.ViewRoot.setView(ViewRoot.java:509)

12-02 07:14:40.880: ERROR/AndroidRuntime(295):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)

12-02 07:14:40.880: ERROR/AndroidRuntime(295):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)

12-02 07:14:40.880: ERROR/AndroidRuntime(295):     at android.app.Dialog.show(Dialog.java:241)

Sto assumendo questo è perché sto cercando di alzare la finestra di dialogo da un WallpaperService piuttosto che da un'attività. Override metodo onTouchEvent del WallpaperService.Engine appena ottiene lo stesso risultato.

Questo significa che ho bisogno di girare un'attività separata per ospitare la finestra di dialogo? O è innescando una finestra di dialogo da una carta da parati dal vivo non è possibile?

È stato utile?

Soluzione

  

Questo significa che ho bisogno di girare un'attività separata per ospitare la finestra di dialogo?

Sì. O, meglio ancora, utilizzare un'attività di dialogo a tema.

Personalmente, se vi aspettate di fare questo per tutta la carta da parati dal vivo, mi aspetto che si otterrà un sacco di feedback una stella sul mercato, come ho il sospetto che gli utenti avranno irritato quando la vostra attività / dialogo continua a comparire up solo perché mis-tap sul loro schermo a casa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top