Android - Пользовательский диалог генерирует исключение NullPointerException, когда определено более одной кнопки - PullRequest
1 голос
/ 07 января 2011

Вот код, который определяет мой пользовательский диалог.Когда я показываю это диалоговое окно, в комментариях появляется исключение NullPointerException.

    protected Dialog onCreateDialog (int id) {
    Dialog dialog = null;
        switch (id) {
        case DIALOG_SUCCESS_ID:

            Context thisContext = this;

            dialog = new Dialog(thisContext);

            dialog.setContentView(R.layout.win_dialog);
            dialog.setTitle("Stage One");

            TextView timeScore = (TextView) dialog.findViewById(R.id.TimeScore);
            timeScore.setText (elapsedTimeSec + "s");
            TextView bestScore = (TextView) dialog.findViewById(R.id.BestScore);
            bestScore.setText ("Best Score: (n/a)");

            Button retry = (Button) dialog.findViewById(R.id.Retry);
            retry.setOnClickListener(new View.OnClickListener() {
                public void onClick (View v) {
                    Intent retry = new Intent(v.getContext(), LevelOne.class);
                    startActivityForResult(retry, 0);
                    finish();
                }
            });

            Button menu = (Button) dialog.findViewById (R.id.ReturnToMenu);

            //Throws NullPointerException at this line
            menu.setOnClickListener(new View.OnClickListener() {
                public void onClick (View v) {
                    Intent menu = new Intent(v.getContext(), Menu.class);
                    startActivityForResult(menu, 0);
                    finish();
                }
            });
            break;
        case DIALOG_GAMEOVER_ID:
            break;
        default:
            dialog = null;
        }
        return dialog;
}

Но когда я удаляю кнопку меню и метод menu.SetOnClickListener (), он работает нормально!Моя кнопка повтора также работает без помех.Почему я не могу добавить более одной кнопки?Почему это исключение?

1 Ответ

5 голосов
/ 07 января 2011

Похоже, dialog.findViewById (R.id.ReturnToMenu); возвращает ноль.Можете ли вы проверить, что у вас есть кнопка с правильным идентификатором?Я предполагаю, что где-то в вашем идентификаторе кнопки «вернуться в меню» есть опечатка.

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