我希望能够通过轻触屏幕来关闭我的安卓应用程序中的对话框窗口。这种操作是否可行?如果可以,该怎么做呢?
我尝试在对话框上设置一些“onClickEven”,但是并不存在。您认为有什么其他解决方案吗?
请问如何实现这个功能呢?
dialog.setCanceledOnTouchOutside(true);
这个方法。如果您在对话框外面触摸屏幕,它会自动关闭该对话框。如果你的对话框中包含任何视图,请尝试在该视图中获取触摸事件,并在用户触摸该视图时关闭对话框。例如,如果你的对话框中有任何图像,则代码应该像这样。
Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.mylayout);
//create a layout with imageview
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
Dialog dialog = new Dialog(context)
{
public boolean dispatchTouchEvent(MotionEvent event)
{
dialog.dismiss();
return false;
}
};
完成啦!
public void onClick(View v) {
AlertDialog dialog = new AlertDialog(MyActivity.this){
@Override
public boolean dispatchTouchEvent(MotionEvent event)
{
dismiss();
return false;
}
};
dialog.setIcon(R.drawable.MyIcon);
dialog.setTitle("MyTitle");
dialog.setMessage("MyMessage");
dialog.setCanceledOnTouchOutside(true);
dialog.show();
}
您可以扩展Dialog
类并覆盖dispatchTouchEvent()
方法。
编辑:您还可以实现Window.Callback
接口,并使用dialog.getWindow().setCallback()
将其设置为对话框的窗口回调。此实现应调用相应的对话框方法或以自己的方式处理事件。