博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AlertDialog 点击空白处、返回按钮 行为
阅读量:6110 次
发布时间:2019-06-21

本文共 1264 字,大约阅读时间需要 4 分钟。

  hot3.png

  1. 弹出AlertDialog之后,点击空白处,默认Dialog消失;

  2. 点击回退键,默认消失;

那么如何点击空白处,不隐藏对话框,点击Android的返回键,跳回到上一个Activity?

直接看代码:

//*******************public static void showAlertDialog(final Context context, String title, CharSequence[] items,            OnClickListener listener, boolean canceledOutside){    	Builder builder = new AlertDialog.Builder(context).setTitle(title).setItems(items, listener);    	if(canceledOutside){    		builder.show();    	}else{            AlertDialog dialog = builder.create();            //点击dialog之外的空白处,dialog不能消失            dialog.setCanceledOnTouchOutside(false);            dialog.setOnKeyListener(new OnKeyListener() {				@Override				public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {					if (keyCode == KeyEvent.KEYCODE_BACK && 			                event.getAction() == KeyEvent.ACTION_UP) {						//按back键,返回上一个Activity						dialog.cancel();						boolean isActivity = context instanceof Activity;						if(isActivity){							Activity act = (Activity)context;				            act.finish();						}			            return false;			            }					return false;				}			});            dialog.show();    	}    }

dialog的dismiss 和cancel方法区别:

cancel会调用CancelListener,这是最大的区别,另外cancel会调用dismiss。

转载于:https://my.oschina.net/jrrx/blog/300549

你可能感兴趣的文章
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
linux 搜索文本
查看>>
超实用Mac软件分享(二)
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
Oracle表分区
查看>>
centos 下安装g++
查看>>
嵌入式,代码调试----GDB扫盲
查看>>
类斐波那契数列的奇妙性质
查看>>
配置设置[Django]引入模版之后报错Requested setting TEMPLATE_DEBUG, but settings are not configured....
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>