Android - изменить текст положительной кнопки AlertDialog - PullRequest
4 голосов
/ 27 июля 2010

Я снова использую поле AlertDialog в моем приложении для Android.

Я создаю диалог в методе onCreateDialog () и в методе onPrepareDialog (), я пытаюсь изменить текст positiveButton, используя следующий код.

alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, this.getString(R.string.add), new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int id) {
          //Handler code
    }
}

Слушатель onclickменяется, но текст кнопки не меняется.

Это ошибка в Android или я что-то не так делаю?

Ответы [ 2 ]

22 голосов
/ 02 декабря 2010

Одним из решений является просто заставить кнопку перерисовать.Например, кнопка для отмены длительной операции может измениться на «ОК» при завершении, например,

Button button = progressDialog.getButton(ProgressDialog.BUTTON1);
button.setText("OK");
button.invalidate();
0 голосов
/ 27 июля 2010

Это работает для меня

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {

        case DIALOG_ID:
            return AlertDialog.Builder(this).setTitle(R.string.contact_groups_add)
    .setView(addView).setPositiveButton(R.string.ok,
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,
                        int whichButton) {

                }
            }).setNegativeButton(R.string.cancel,
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,
                        int whichButton) {
                }
            }).create();
    }
    return null;
}
...