单例 Dialog 自定义
来源:互联网 发布:四维星瓷砖铺贴软件 编辑:程序博客网 时间:2024/06/07 05:16
当应用中出现错误信息时,经常会以Dialog的形式显示错误信息,如果每次都new一个Dialog,会很麻烦,也增加程序的开销,所以今天分享一种单例MessageDialog,程序中至多存在一个对象,使程序效率更高。
代码
public class MessageDialog extends Dialog { private static MessageDialog dialog = null; private TextView tvMsg; public static MessageDialog getInstance(Context context) { if (dialog == null) { synchronized (MessageDialog.class) { if (dialog == null) { dialog = new MessageDialog(context, R.style.MessageDialogStyle); } } } return dialog; } private MessageDialog(Context context, int themeResId) { super(context, themeResId); LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.dialog_message, null); tvMsg = (TextView) layout.findViewById(R.id.tv_msg); (layout.findViewById(R.id.bt_confirm)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dismiss(); } }); this.addContentView(layout, new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));//设置大小 } public MessageDialog setMsg(String msg) { tvMsg.setText(msg); return this; }
MessageDialogStyle
<style name="MessageDialogStyle" parent="@android:style/Theme.Dialog"> <item name="android:background">#00000000</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> </style>
dialog_message
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dialog_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_message_dialog"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_msg" android:text="Message" android:textSize="18sp" android:layout_centerHorizontal="true" android:layout_margin="30dp"/> <Button android:id="@+id/bt_confirm" android:layout_width="300dp" android:layout_height="wrap_content" android:text="确定" android:layout_below="@id/tv_msg" android:textSize="18dp"/></RelativeLayout>
使用
MessageDialog.getInstance(this).setMsg("good").show();
0 0
- 单例 Dialog 自定义
- 单选样式的自定义dialog
- dialog里面实现自定义样式单选按钮功
- Android之在Dialog中添加单选按钮【自定义Dialog】
- 自定义Dialog---继承Dialog
- 自定义Dialog android Dialog
- 自定义Dialog
- 自定义Dialog
- 自定义dialog
- 自定义 Dialog
- 自定义dialog
- 自定义 dialog
- 自定义Dialog
- 自定义 Dialog
- 自定义Dialog
- 自定义dialog
- 自定义Dialog
- 自定义 Dialog
- php自带的简单分页
- JS兼容各个浏览器的本地图片上传即时预览效果
- Spring MVC配置MyBatis输出SQL
- 数据库的主键和外键
- JS如何实现点击页面其他地方隐藏菜单?
- 单例 Dialog 自定义
- 视频录制-MediaRecorder
- 解决Android7.0系统 调用系统相机、系统播放器播放视频、切图兼容问题,报异常android.os.FileUriExposedException
- 收缩表空间大小
- Zookeeper概述
- eclipse集成jboss,deployment无法修改项目部署路径
- Laravel 校验规则之字段值唯一性校验
- 四塔问题 ssl 2632 规律题
- 大数据看两会热词:脱贫/扶贫