我有一个活动 - 一个包含一些TextFields的表单,用户在填写所有字段后单击一个提交按钮。当用户触摸提交按钮时,它应显示警告对话框,然后当用户触摸OK时,其余的OnClicklistener代码将执行。目前,我的代码是这样的。
提交/完成按钮的监听器:
private final OnClickListener mFinishListener = new OnClickListener() {
public void onClick(View v) {
displayAlert();
// Some other things to do here. Lets say showing some other activity
};
警报对话框代码:
public void displayAlert(){
new AlertDialog.Builder(this).setMessage("Hi , I am Alert Dialog")
.setTitle("My Alert")
.setCancelable(true)
.setNeutralButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
finish();
}
})
.show();
}
我的输出很奇怪。当我单击提交/完成按钮时,它会显示警告对话框,但在我按下确定按钮之前它会消失。为什么呢?
答案 0 :(得分:1)
Hi this is working but don't write finish(); after displayAlert(); function.
private final OnClickListener mFinishListener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
displayAlert();
//your code // don't write finish(); here if you write
}
};
public void displayAlert(){
new AlertDialog.Builder(this).setMessage("Hi , I am Alert Dialog")
.setTitle("My Alert")
.setCancelable(true)
.setNeutralButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
finish();
}
})
.show();
}
答案 1 :(得分:0)
您希望在用户单击“确定”后执行的代码应移至AlertDialog的onClick方法。在finish()
之后。否则它将在对话框显示时开始执行。
答案 2 :(得分:0)
如果您只想关闭对话框
public void onClick(DialogInterface dialog, int whichButton){
dialog.dismiss();
}
如果您想关闭对话框和关闭活动
public void onClick(DialogInterface dialog, int whichButton){
dialog.dismiss();
finish();
}