AlertDialog或者Dialog显示的内容异常
来源:互联网 发布:纸模制作软件 编辑:程序博客网 时间:2024/05/18 11:04
在Android中显示一个Dialog,为了性能更优化,会遵循这样一个机制。现在缓存中查找是否有包含该DialogID的对话框,如果有的话直接调用;反之就重新创建一个。
该方法对于性能优化比较有用,但是对于我们每次显示对话框都要求显示不同内容的需求来说就有点麻烦了。
方法就是在创建这个Dialog之前先将他从缓存中移除。如下:
switch(id) { case DIALOG_OPERATION_MENU:return new AlertDialog.Builder(this).setTitle("操作") .setIcon(R.drawable.ic_launcher) .setItems(R.array.operation_menu, ocl).create(); //重命名文件 case DIALOG_RENAME: return new AlertDialog.Builder(this).setTitle("重命名") .setView(mRename).setPositiveButton("确定", ocl) .setNegativeButton("取消", ocl).create(); //分享文件 case DIALOG_SHARE: shareAPK(); break; //显示详情 case DIALOG_DETAIL: return showFileDetail(); } return null; }
这里面都是显示一个Dialog,在显示每个Dialog方法前都会调用onPrepareDialog方法。我们就重写这个方法,从缓存中移除该dialog,如下:
protected void onPrepareDialog(int id, Dialog dialog) {// TODO Auto-generated method stub switch(id) { case DIALOG_OPERATION_MENU: case DIALOG_RENAME: case DIALOG_SHARE: case DIALOG_DETAIL: removeDialog(id); break; } super.onPrepareDialog(id, dialog);}
这样每次显示新的Dialog都会调用onPrepareDialog,都会从缓存中删除该Dialog。这样就会重新运行一遍创建Dialog的流程,这样我们写在创建Dialog中的代码就会起作用。
- AlertDialog或者Dialog显示的内容异常
- AlertDialog 使用string中的内容作为dialog的item
- Android开发,禁止AlertDialog点击确定或者取消都自动关闭dialog的情况
- 自定义AlertDialog内容居中显示
- android AlertDialog Dialog显示位置、大小,背景
- Dialog显示引发异常
- 关于AlertDialog中不可思议的dialog.show()异常出错的问题的解决
- 进入界面显示Dialog或者PopupWindow闪退的处理
- 用LayoutInflater 定制 Dialog显示内容 并 调整Dialog的显示位置
- Android弹出框PopupWindow,Dialog,AlertDialog.Builder,AlertDialog的一知半解
- 安卓AlertDialog自定义显示内容
- android.support.v7.app.AlertDialog显示异常
- 自定义AlertDialog和一般的Dialog
- Dialog的使用(一):用AlertDialog提示
- Dialog的使用(二):AlertDialog.setItems
- 丰富多彩的Dialog之AlertDialog.Builder
- Dialog对话框分类及系统的 AlertDialog
- 弹出系统dialog或者在service里面显示dialog
- Kzalloc与Kmalloc差异
- key驱动调试问题总结
- 最新Android ADT, SDK, SDK_tool等官方下载说明(及时更新)
- 流行语言列表
- 数据库模式
- AlertDialog或者Dialog显示的内容异常
- aspx 上传Excel出现错误:80000401a 的解决办法
- C++ 读写Excel表格文件 Libxl破解版 支持2007版本 xlsx 中文
- Fragment
- POJ 3565 Ants
- AndroidUI之开关效果的设计
- 学习中的自我欺骗
- SVM入门
- 访问控制模型综述