为什么编译器在下面的代码中显示setPositiveButton和setNegativeButton的错误。如果我使用setButton没有错误,但只允许我在警告对话框中显示一个按钮。我想要2个按钮。根据许多教程,必须使用setPositiveButton和setNegativeButton设置双按钮警报对话框。为什么会为这些编译错误?
public void onClick(View v) {
AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create();
alert.setTitle("Confirm Edit");
alert.setMessage("do you want to save edits?");
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// launches other activity if the user presses the OK button
Intent myIntent = new Intent(MainActivity.this, TestScreen.class);
MainActivity.this.startActivity(myIntent);
Toast.makeText(MainActivity.this, "Edits saved", Toast.LENGTH_SHORT).show();
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Edits Canceled", Toast.LENGTH_SHORT).show();
dialog.cancel();
}
});
alert.show();
}
});
答案 0 :(得分:0)
您的代码是正确的,只需要稍微更改一下。使用Builder类创建AlertDialog。
Builder builder = new AlertDialog.Builder ( MainActivity.this );
builder.setTitle ( "Confirm Edit" );
builder.setMessage("do you want to save edits?");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// launches other activity if the user presses the OK button
Intent myIntent = new Intent(MainActivity.this, TestScreen.class);
MainActivity.this.startActivity(myIntent);
Toast.makeText(MainActivity.this, "Edits saved", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Edits Canceled", Toast.LENGTH_SHORT).show();
dialog.cancel();
}
});
// Now finally showing Alert Dialog.
AlertDialog alert = builder.create();
alert.show();