ライブ壁紙をタップすると、簡単な情報が表示されたダイアログボックスを開きたいと思います。 Androidのライブ壁紙でオンデマンドのオーバーライド、ほぼストレート(図示せずレイアウトinfo_dialog.xml付き)Androidのドキュメントのうち、カスタムダイアログを追加:Androidライブ壁紙に触れたときにダイアログを開く
@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
}
だけ例外が発生します
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)
これは、Activityからではなく、WallpaperServiceからダイアログを生成しようとしているためです。 WallpaperService.EngineのonTouchEventメソッドをオーバーライドすると、同じ結果が得られます。
これは、ダイアログをホストする別のアクティビティをスピンアップする必要があることを意味しますか?または、ライブ壁紙からダイアログを起動できませんか?
1 /音が良い、私はダイアログをテーマにした活動を見ていきます。 –
2 /それは私を怒らせるだろう。良い点:)私はあなたが*特定のタップ可能な領域を持つことができると思いますが、それでも.. –
3 /ライブ壁紙に関する情報を提供するために受け入れられる方法は何ですか?壁紙設定の[概要]オプションのようなもの? –