ウィジェットを使用してアプリケーションを作成しようとしています。ユーザーがウィジェットをデスクトップに置くと、リストビューに項目のリストが表示されます。ユーザが項目を選択すると、その項目に関連するそれぞれのテキストを有するウィジェットが作成される。私はサービスでダイアログを示すことによって、これを行う必要があると思ったが、それは私によって引き起こさサービスのAndroidエラー:「ウィンドウを追加できません - アプリケーションでトークンnullがありません」
スロー:android.view.WindowManager $ BadTokenExceptionを: ウィンドウを追加することができません - トークンnullがアプリケーション
のためではありません
to the dialog_newitem.show();ライン。簡単にするために、私は今、簡単なalertdialogを使用しています。
これを行う方法ですか?私はネット上でこれについての魅力を発見していない。
public class UpdateWidgetService extends Service {
private static final String LOG = "de.vogella.android.widget.example";
public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
String value;
Dialog dialog_newitem;
EditText et_newitem;
@Override
public void onStart(Intent intent, int startId) {
Toast.makeText(this, "UpdateWidgetService", Toast.LENGTH_SHORT).show();
dialog_newitem = new Dialog(this); //I tried UpdateWidgetService.this, too
dialog_newitem.setContentView(R.layout.dialog_productlists_grp_capitalized);
dialog_newitem.setTitle("Select");
dialog_newitem.setCancelable(true);
et_newitem = (EditText) dialog_newitem.findViewById(R.id.et_item_name);
Button btn_Save = (Button) dialog_newitem.findViewById(R.id.btn_save_pr);
btn_Save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
value = et_newitem.getText().toString();
}
});
Button btn_Cancel = (Button) dialog_newitem.findViewById(R.id.btn_cancel_pr);
btn_Cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog_newitem.dismiss();
}
});
dialog_newitem.show(); //error
Toast.makeText(this, "value: " + value, Toast.LENGTH_SHORT).show();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
私は、コードのいくつかの他の部分では、このalertdialogを使用している、そしてそこにそれが正常に動作しています。私はそれがサービスと関係があると思う。
おかげで、私はその – erdomester