我想要这样的东西。我想重用我的警报对话框方法,但是我不知道如何为肯定和否定按钮实现参数:
private void alert(String title, String message, actionPositive, actionNegative){
AlertDialog.Builder builder = new AlertDialog.Builder(QuestionProfile.this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.setInverseBackgroundForced(true);
builder.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//action
}
});
builder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
我想这样称呼是可能的吗?
alert("Title","Message",action for positive button, action for negative button);
答案 0 :(得分:2)
它可以很简单,如下所示:
private void alert(String title, String message,DialogInterface.OnClickListener actionPositive, DialogInterface.OnClickListener actionNegative){
AlertDialog.Builder builder = new AlertDialog.Builder(QuestionProfile.this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.setInverseBackgroundForced(true);
builder.setPositiveButton("Yes",actionPositive);
builder.setNegativeButton("No",actionNegative);
AlertDialog alert = builder.create();
alert.show();
}
匿名类的示例用法是:
alert("Title","Message",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//action for positive
}
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//action for negative
}
});
答案 1 :(得分:1)
您可以使用整数大小写集或boolean
来完成此操作。如果boolean
为true
,则它将显示delete;如果false
,则将显示OK,如下所示-
private void alert(String title, String message, boolean actionPositive, boolean actionNegative){
String positive = "";
if(actionPositive)
positive = "DELETE"
else
positive = "OK"
AlertDialog.Builder builder = new AlertDialog.Builder(QuestionProfile.this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.setInverseBackgroundForced(true);
builder.setPositiveButton(positive, //give name to your action
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(actionPositive)
//action delete
else
//action ok
}
});
builder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
以上述方式,您也可以将其用于否定按钮。
您的delete调用方法如下
alert(""title, "message", true, false)
好吧
alert(""title, "message", false, false)