Android Dialog alert - PullRequest
       13

Android Dialog alert

0 голосов
/ 05 апреля 2011
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) {

  }
});

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

Ответы [ 3 ]

0 голосов
/ 12 февраля 2014
AlertDialog.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();
  } });
adb.show();
0 голосов
/ 10 ноября 2014

У меня вчера такая же проблема. Я решил это, создавая диалоговое окно оповещения каждый раз, когда я хотел показать. Вместо того, чтобы показывать это несколько раз и создавать только один раз. Это означает, что при каждом нажатии кнопки 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();
0 голосов
/ 06 апреля 2011

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

...