Android对话警报

时间:2011-04-05 12:19:16

标签: android alertdialog

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 :(得分:0)

为此,除了拥有OnCreateDialog()之外,还需要覆盖onPrepareDialog()。因为在第一次创建对话框之后,下一次是onPrepareDialog()。

答案 1 :(得分:0)

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();

答案 2 :(得分:0)

昨天我遇到同样的问题。我通过每次想要显示时创建警报对话框来解决它。而不是多次显示它而只创建它一次。这意味着每次单击按钮时,都会创建并显示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();