我正在打一个简单的脚本,其中有两个选项的确认框。我需要在活动中多次调用它。所以我做了一个方法来做到这一点。基于返回的布尔值我想写条件语句。
// Before oncreate
static boolean confirmation;
private void showConfirmation() {
// UserFunctions userFunctions = null;
// TODO Auto-generated methodastub
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ProfileActivity.this);
// set title
alertDialogBuilder.setTitle("test");
// set dialog message
alertDialogBuilder.setMessage("Please update the unfilled fields.").setCancelable(false)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
confirmation = false;
}
}).setNegativeButton("Later on", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
confirmation = true;
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
@Override
public void myOnClickRecharge(View v) {
showConfirmation();
if (confirmation){
Intent intent = new Intent(getApplicationContext(), NewActivity.class);
startActivity(intent);
}
}
答案 0 :(得分:0)
这样你总会返回false,因为该方法不会等待关闭对话框。我建议您使用一个静态布尔值,并根据单击的按钮更改其值。在onCreate()之前:
boolean confirmation;
然后在你的代码中:
alertDialogBuilder.setMessage("Please update the unfilled fields.").setCancelable(false)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
confirmation = false;
dialog.cancel();
}
}).setNegativeButton("Later on", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
confirmation = true;
}
});
然后你这样检查:
if (confirmation)
{
//Do something (TRUE)
}
else
{
//Do something (FALSE)
}
希望这会有所帮助。祝你好运。