Activity作为Dialog的简单使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activity作为Dialog的简单使用相关的知识,希望对你有一定的参考价值。
参考技术A Activity可当做Dialog使用,使用时只需更改主题即可。1、新建DialogActivity,在Manifest文件中设置主题
2、在style文件中创建DialogActivityTheme,parent选用Theme.AppCompat.Dialog。
3、在MainActivity中设置点击事件跳转DialogActivity即可显示为Dialog样式
Tip
1、创建的Activity若继承自AppcompataActivity,需添加<item name="windowNoTitle">true</item>,不添加会报错。若继承Activity可不添加
2、windowIsFloating的作用:看下图。
android 对话框Dialog拦截activity事件通知
在一个activity上面弹出Dialog时候,Dialog拥有页面的事件通知,包括点击,外接等等事件通知。那么有时候这些事件对Dialog来说是没有用的,是给activity使用的。
示例:
这是一个Activity中的dispatchKeyEvent事件,或者外接刷卡机器监听事件。需要activity处理的。
@Override
public boolean dispatchKeyEvent(KeyEvent event)
if (event.getAction() == KeyEvent.ACTION_DOWN)
int keyCode = event.getKeyCode();
if (keyCode <= 6)
return false;
if (mScanGun != null)
if (mScanGun.isMaybeScanning(keyCode, event))
return true;
return super.dispatchKeyEvent(event);
这个时候弹出了一个Dialog进行提示操作之类
//对话框事件 拦截去掉,给activity
@Override
public boolean dispatchKeyEvent(KeyEvent event)
if (mContext instanceof Activity)
((Activity) mContext).dispatchKeyEvent(event);
if (isShowing())
dismiss();
return super.dispatchKeyEvent(event);
所以这个时候处理就是Dialog还在显示的话,就dismiss(),然后事件往下传递就行。这样下面的activity就能接收到 super.dispatchKeyEvent(event) 事件。
以上是关于Activity作为Dialog的简单使用的主要内容,如果未能解决你的问题,请参考以下文章
Android Activity调用Dialog后的返回值方法
自制WheelView沉浸式菜单及Dialog样式Activit
Android自定义半透明背景弹窗非popwindow/dialog超简单任意编写!
Android自定义半透明背景弹窗非popwindow/dialog超简单任意编写!
dialog token null is not valid; is your activity running源码分析