Диалог оповещения с ошибкой пользовательского макета - PullRequest
4 голосов
/ 01 мая 2010

Так что это связано с вопросом, который я задавал ранее. Я пытаюсь отобразить предупреждение, используя указанный макет. Мой макет:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout_root"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="10dp">
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:textColor="#FFF" />   
</LinearLayout>

А код для вызова и отображения диалогового окна с предупреждением:

    Context mContext = getApplicationContext();

    AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    // use a custom View defined in xml
    View view = LayoutInflater.from(mContext).inflate(R.layout.sell_dialog,      (ViewGroup) findViewById(R.id.layout_root));
    builder.setView(view);
    builder.setPositiveButton(android.R.string.ok, new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            // do whatever you want with the input
        }
    });
    AlertDialog alertDialog = builder.create();

    alertDialog.show();

Когда я запускаю его, я получаю сообщение об ошибке:

Uncaught handler: выход из основного потока из-за uncaught исключения android.view.WindowManager $ NadTokenException: невозможно добавить окно - нулевой токен не для приложения

Я просмотрел сайт разработки для Android и не могу понять. Я думаю, я просто упускаю что-то очевидное, но исправление не бросается в глаза. Как я могу получить это диалоговое окно с предупреждением?

1 Ответ

9 голосов
/ 01 мая 2010

Не использовать getApplicationContext(). Этот метод доступен только для Context (например, Activity) - используйте это Context для AlertDialog.Builder.

Вот пример проекта из одной из моих книг, в котором, помимо прочего, показан AlertDialog на основе пользовательского View.

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