我之前已经提到了这个,但不知怎的,这已经冻结了。所以做一个重复的。
我正在打一个简单的脚本,其中有两个选项的确认框。我需要在活动中多次调用它。所以我做了一个方法来做到这一点。基于返回的布尔值我想写条件语句。
// Before oncreate
静态布尔确认;
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();
}
public void myOnClicktest(View v) {
showConfirmation();
if (confirmation){
Intent intent = new Intent(getApplicationContext(), NewActivity.class);
startActivity(intent);
}
}
答案 0 :(得分:1)
这样做 -
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) {
Intent intent = new Intent(getApplicationContext(), NewActivity.class);
startActivity(intent);
}
});
因为在您的情况下,您的代码不会等待确认值在对话框中更改它跳过对话框,默认情况下确认值为false。