一个自定义dialog提供确定和取消按钮的回调接口
2016-07-07 15:01
387 查看
public class MessageDialog { Context context; AlertDialog dialog; AlertDialog.Builder builder; private MessageDialog() {} private static MessageDialog messageDialog = new MessageDialog(); public static MessageDialog getInstance() {return messageDialog;} OnCancelClickListener cancelClickListener; OnCommitClickListener commitClickListener; public void showMessageDialog() { if (dialog != null && !dialog.isShowing()) { dialog.show(); } } public void cancelMessageDialog() { if(dialog != null && dialog.isShowing()) { dialog.cancel(); } } public AlertDialog generateDialog() { if (builder == null) { return null; } dialog = builder.create(); return dialog; } public void initDialog(Context context, String message) { this.initDialog(context, "是", "否", message); } /** * 初始化对话框 * @param context * @param message */ public void initDialog(Context context, String btnCommit, String btnCancel, String message) { this.context = context; builder = new AlertDialog.Builder(context).setMessage(message).setPositiveButton(btnCommit, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); if(commitClickListener == null) { return; } commitClickListener.onCommit(); } }).setNegativeButton(btnCancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); if(cancelClickListener == null) { return; } cancelClickListener.onCancel(); } }); } public OnCancelClickListener getCancelClickListener() { return cancelClickListener; } public MessageDialog setCancelClickListener(OnCancelClickListener cancelClickListener) { this.cancelClickListener = cancelClickListener; return this; } public OnCommitClickListener getCommitClickListener() { return commitClickListener; } public MessageDialog setCommitClickListener(OnCommitClickListener commitClickListener) { this.commitClickListener = commitClickListener; return this; } public void setAlertMessage(String message) { builder.setMessage(message); } public interface OnCancelClickListener { public void onCancel(); } public interface OnCommitClickListener { public void onCommit(); } }
在别的类中使用的例子
MessageDialog messageDialog = MessageDialog.getInstance();messageDialog.initDialog(context, "是", "否", "报备成功,是否继续?");messageDialog.generateDialog();messageDialog.showMessageDialog();messageDialog.setCommitClickListener(new MessageDialog.OnCommitClickListener() {@Overridepublic void onCommit() {fragment.viewReset();}});messageDialog.setCancelClickListener(new MessageDialog.OnCancelClickListener() {@Overridepublic void onCancel() {fragment.getActivity().onBackPressed();}});
相关文章推荐
- 离线安装cdh
- 图像特征提取之(三) --- HOG特征
- MOS管
- OC 中的深拷贝和浅拷贝
- Http状态码大全
- 月份的研究
- MotionEvent.ACTION_UP无法被响应
- C#使用WebService和Session
- 四旋翼飞行器结构和原理
- mahout之推荐系统源码笔记(2) ---相似度计算之RowSimilarityJob
- Java 接口和抽象类区别
- 开源框架 EventBus 简单使用
- Unity 从服务器下载图片保存本地然后下次读取
- 手把手教你逆向分析 Android 程序
- 版本管理工具Git使用总结
- 文件的读取和写入(指定路径)
- 基于hive的transform实现自定义分隔符数据导出
- 并行编程要素
- Spring事务配置的五种方式(转载)
- Codeforces Round #293 (Div. 2) -- E. Arthur and Questions (思路 + 贪心)