Оповещение о диалоговом окне Android

AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle("Title");
alert.setMessage("Message");

// Set an EditText view to get user input 
final EditText input = new EditText(this);
alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
  input.setText("");
  }
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog, int whichButton) {

  }
});

Я показываю это диалоговое окно при нажатии кнопки на моем экране. В первый раз он показывает предупреждение отлично, но при повторном нажатии на кнопку для отображения предупреждения выдает ошибку. Пожалуйста, подскажите, в чем проблема


person Durga Dutt    schedule 05.04.2011    source источник
comment
какая ошибка выходит? Загрузить логкэт..   -  person Kartik Domadiya    schedule 05.04.2011
comment
Какую ошибку вы получаете?   -  person Joe Krill    schedule 05.04.2011
comment
Кроме того, как вы показываете диалог? Используете ли вы Activity.showDialog() или явно вызываете AlertDialog.show() внутри события нажатия кнопки? Код для этого был бы полезен.   -  person devunwired    schedule 05.04.2011
comment
Выдает ошибку Приложение неожиданно перестало работать. Пожалуйста, попробуйте еще раз   -  person Durga Dutt    schedule 05.04.2011
comment
Я использую метод AlertDialog.show() для события нажатия кнопки   -  person Durga Dutt    schedule 05.04.2011
comment
Попробуйте определить Context и использовать вместо this   -  person Hussain    schedule 05.04.2011
comment
У меня работает нормально. ПОЖАЛУЙСТА, Google LogCat и как его использовать в Eclipse и Android. Нам нужно знать, какие исключения происходят и где. Код, который у вас есть в сообщении, работает нормально.   -  person Codemonkey    schedule 05.04.2011
comment
перейдите, чтобы добавить изображение и текст, которые вы хотите отобразить в диалоговом окне предупреждения... a> и отредактируйте свой код Java, как показано ниже stackoverflow.com/a/10861174/1428123   -  person Amit Parjapati    schedule 02.06.2012


Ответы (2)


Для этого вам необходимо переопределить onPrepareDialog() в дополнение к OnCreateDialog(). Потому что после первого создания диалога в следующий раз он переходит к onPrepareDialog().

person Vicky Kapadia    schedule 06.04.2011

У меня такая же проблема вчера. Я решил это, создав диалоговое окно предупреждения каждый раз, когда я хотел показать. Вместо того, чтобы показывать его несколько раз и создавать только один раз. Это означает, что каждый раз, когда нажимается кнопка, AlertDialog будет создаваться и отображаться.

Используйте этот метод для создания alertDialog:

AlertDialog createAlertDialog() 
{
    Builder adb = new AlertDialog.Builder(this);
    adb.setView(alertDialogView);
    adb.setTitle("Title of alert dialog");
    adb.setIcon(android.R.drawable.ic_dialog_alert);
    adb.setPositiveButton("OK", new DialogInterface.OnClickListener() 
    {
        public void onClick(DialogInterface dialog, int which) 
        {
        EditText et = (EditText)alertDialogView.findViewById(R.id.EditText1);
        Toast.makeText(Tutoriel18_Android.this, et.getText(), Toast.LENGTH_SHORT).show();
        } 
    });
    adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() 
    {
        public void onClick(DialogInterface dialog, int which) 
        {
            finish();
        } 
    });
    return adb.create();
}

И используйте это, когда вы хотите, чтобы диалоговое окно предупреждения отображалось:

createAlertDialog().show();
person ArabCheese    schedule 09.11.2014