你好我有一个问题,dismissDialog()
在被叫时不起作用。
我希望我的对话框在后退时关闭。
我用这段代码解雇他:
public class InstaLoginDialog extends Dialog {
// SOME METHODS
public void onBackPressed() {
InstaLoginDialog.this.dismissDialog();
InstaLoginDialog.this.dismiss();
InstaLoginDialog.this.cancel();
}
}
在onBackPressed()
被调用的部分,但对话框没有被解雇。
我尝试了所有的解雇方法。
感谢帮助
答案 0 :(得分:9)
设置dialog.cancelable(true)并且您不需要编写任何代码来解除对话按下后按键。
答案 1 :(得分:1)
在API级别13中弃用了dismissDialog()方法
你试过dismiss()
吗?
例如InstaLoginDialog.this.dismiss()
<强> [编辑] 强>
我已经尝试过这段代码了,当我按下后退按钮时,对话框被解除了。我没有使用onBackPressed()
这是MyCustomDialog
类定义:
public class MyCustomDialog extends Dialog {
public MyCustomDialog(Context context) {
super(context);
}
@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.dialog);
}
}
然后在我的MainActivity
中,我调用这样的对话框:
MyCustomDialog mydialog = new MyCustomDialog(MainActivity.this);
mydialog.show();
当我按下手机的后退按钮时,对话框被取消。希望这有用。
答案 2 :(得分:1)
尝试在您的活动中执行此操作:
public class YourActivity extends FragmentActivity {
...
public void onBackPressed() {
dialog.dismiss();
}
}
答案 3 :(得分:1)
尝试这个创建构造函数。
public InstaLoginDialog (Context context) {
super(context);
}
onBackPressed()使用了这个。
InstaLoginDialog .this.dismiss();
答案 4 :(得分:1)
仅设置your_dialog.cancelable(true)。每件事都将由android本身处理。
your_dialog.cancelable(true)
关注你。
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getParent());
alertDialogBuilder.setTitle("Blocked");
alertDialogBuilder
.setMessage("Seems like you are blocked by this service provider.Please choose another service provider.")
.setCancelable(true)
.setNegativeButton("OK",new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int id) {
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
如果您需要使用onBackPressed()取消对话框,请尝试
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
your_dialog.dismiss();
}