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) {
}
});
我在点击屏幕上的按钮时显示此对话框。第一次它显示警报,但当再次单击按钮以显示警报时,它会给出错误。 请建议我,实际问题是什么
答案 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();