Ошибка AlertDialog в Android - PullRequest
1 голос
/ 03 февраля 2011


Я использовал следующий код для создания AlertDialog.

     AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
 builder.setMessage("Are you sure you want to exit?")
        .setCancelable(false)
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            }
        })
        .setNegativeButton("No", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                 dialog.cancel();
            }
        });
 AlertDialog alert = builder.create();
     alert.show();

Но он показывает ошибку на alert.show()
Я получил ошибку

02-03 11:36:43.204: WARN/dalvikvm(452): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
         02-03 11:36:43.214: ERROR/AndroidRuntime(452): Uncaught handler: thread main exiting due to uncaught exception
         02-03 11:36:43.234: ERROR/AndroidRuntime(452): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
         02-03 11:36:43.234: ERROR/AndroidRuntime(452):     at android.view.ViewRoot.setView(ViewRoot.java:472)
         02-03 11:36:43.234: ERROR/AndroidRuntime(452):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)

этот класс является действием

public class HomeTabActivity extends Activity 

Это HomeTabActivity является одним из groupActivity, так как я использую каждое нажатие в качестве действия.Я назвал это занятие следующим образом

 View view = getLocalActivityManager().startActivity("hometab", new
                 Intent(this,HomeTabActivity.class)
                 .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
         replaceView(view);

Что я пропустил.Заранее спасибо

Ответы [ 3 ]

6 голосов
/ 03 февраля 2011

Первая строка неверна.При вызове из Activity это должно быть

AlertDialog.Builder builder = new AlertDialog.Builder(this);
4 голосов
/ 03 февраля 2011

Попробуйте использовать

 AlertDialog.Builder builder = new AlertDialog.Builder(getParent());
1 голос
/ 03 февраля 2011

Вы пытались использовать Activity методы onCreateDialog(int id) и вызывать его с помощью showDialog(id)? Здесь - хороший ресурс о диалогах в Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...