ConfirmCancelDialogUtil【确认取消对话框封装类】
2017-08-28 00:56
447 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。
前提:调用对话框的Activity必须继承FragmentActivity及其子类(比如AppCompatActivity)。
dialog_confirm_cancel_util.xml
前言
对确认取消对话框的封装。前提:调用对话框的Activity必须继承FragmentActivity及其子类(比如AppCompatActivity)。
效果图
<?xml version="1.0" encoding="utf-8"?> <!-- 确认对话框样式【含有标题、左右两个按钮】布局文件 --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/comfirmdialog_view" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" android:gravity="center"> <RelativeLayout android:id="@+id/relativeLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/confirm_cancel_util_dialog_margin" android:layout_marginRight="@dimen/confirm_cancel_util_dialog_margin" android:background="@drawable/dialog_confirm_cancel_util_bg" > <!-- 标题 --> <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="@string/confirm_cancel_title" android:textColor="@color/confirm_cancel_util_dialog_title_color" android:textSize="@dimen/confirm_cancel_util_dialog_title_text_size" android:paddingTop="@dimen/confirm_cancel_util_dialog_title_padding"/> <!-- 内容 --> <TextView android:id="@+id/message" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/title" android:gravity="left" android:textColor="@color/confirm_cancel_util_dialog_message_color" android:text="" android:textSize="@dimen/confirm_cancel_util_dialog_message_text_size" android:paddingTop="@dimen/confirm_cancel_util_dialog_message_padding" android:paddingBottom="@dimen/confirm_cancel_util_dialog_message_padding" android:paddingLeft="@dimen/confirm_cancel_util_dialog_delever_margin" android:paddingRight="@dimen/confirm_cancel_util_dialog_delever_margin"/> <!-- 底部按钮区域 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/message" android:orientation="horizontal" android:background="@android:color/transparent" > <!-- 取消按钮 --> <Button android:id="@+id/cancel" android:layout_width="0.0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/dialog_confirm_cancel_util_left_btn_bg" android:gravity="center" android:text="@string/confirm_cancel_left_btn" android:textColor="@color/confirm_cancel_util_dialog_btn_left_text_color" android:textSize="@dimen/confirm_cancel_util_dialog_btn_text_size" android:paddingTop="@dimen/confirm_cancel_util_dialog_title_padding" android:paddingBottom="@dimen/confirm_cancel_util_dialog_title_padding" /> <!-- 确定按钮 --> <Button android:id="@+id/confirm" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0" android:background="@drawable/dialog_confirm_cancel_util_right_btn_bg" android:gravity="center" android:text="@string/confirm_cancel_right_btn" android:textColor="@color/confirm_cancel_util_dialog_btn_right_text_color" android:textSize="@dimen/confirm_cancel_util_dialog_btn_text_size" android:paddingTop="@dimen/confirm_cancel_util_dialog_title_padding" android:paddingBottom="@dimen/confirm_cancel_util_dialog_title_padding" /> </LinearLayout> </RelativeLayout> </RelativeLayout>
dialog_confirm_cancel_util.xml
将drawable目录中的文件复制到项目中
在colors.xml文件中添加以下代码
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> <!-- ************确认取消对话框************ --> <!-- 对话框的边框颜色 --> <color name="confirm_cancel_util_dialog_stroke_color">#7fbfbfbf</color> <!-- 对话框的填充颜色 --> <color name="confirm_cancel_util_dialog_solid_color">#ffffffff</color> <!-- 对话框的标题颜色 --> <color name="confirm_cancel_util_dialog_title_color">#000000</color> <!-- 对话框的内容颜色 --> <color name="confirm_cancel_util_dialog_message_color">#6A6A6A</color> <!-- 对话框的右侧按钮默认颜色 --> <color name="confirm_cancel_util_dialog_btn_right_color">#ffffff</color> <!-- 对话框的左侧按钮颜色 --> <color name="confirm_cancel_util_dialog_btn_left_color">#4065EF</color> <!-- 对话框的右侧按钮文字颜色 --> <color name="confirm_cancel_util_dialog_btn_right_text_color">#000000</color> <!-- 对话框的左侧按钮文字颜色 --> <color name="confirm_cancel_util_dialog_btn_left_text_color">#ffffffff</color> </resources>
在dimens.xml文件中添加以下代码
<resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> <!-- ************确认取消对话框************ --> <!-- 对话框的圆角角度 --> <dimen name="confirm_cancel_util_dialog_corners">10dp</dimen> <!-- 对话框的整体外边距 --> <dimen name="confirm_cancel_util_dialog_margin">40dp</dimen> <!-- 对话框的标题内边距 --> <dimen name="confirm_cancel_util_dialog_title_padding">10dp</dimen> <!-- 对话框的标题大小 --> <dimen name="confirm_cancel_util_dialog_title_text_size">18sp</dimen> <!-- 中横线的外边距 --> <dimen name="confirm_cancel_util_dialog_delever_margin">8dp</dimen> <!-- 对话框的内容内边距 --> <dimen name="confirm_cancel_util_dialog_message_padding">20dp</dimen> <!-- 对话框的内容大小 --> <dimen name="confirm_cancel_util_dialog_message_text_size">16sp</dimen> <!-- 对话框的按钮大小 --> <dimen name="confirm_cancel_util_dialog_btn_text_size">18sp</dimen> </resources>
在strings.xml文件中添加以下代码
<resources> <string name="app_name">ConfirmCancelDialogUtilDemo</string> <!-- ************确认取消对话框************ --> <string name="confirm_cancel_title">提示</string> <string name="confirm_cancel_right_btn">确定</string> <string name="confirm_cancel_left_btn">取消</string> </resources>
三、使用方法
只展现一个确定按钮
btn_confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ConfirmCancelUtilDialog dialog = ConfirmCancelUtilDialog.getInstance(MainActivity.this, new ConfirmCancelUtilDialog.DialogSetListener() { @Override public void setDialog(TextView title, TextView message, Button leftBtn, Button rightBtn) { title.setText("提示"); message.setText("请检查用户名"); message.setGravity(Gravity.CENTER); leftBtn.setText("确定"); rightBtn.setVisibility(View.GONE); } }); dialog.setDialogClickListener(new ConfirmCancelUtilDialog.DialogClickListener() { @Override public void leftClickListener() { Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show(); } @Override public void rightClickListener() { } }); dialog.show(getSupportFragmentManager(), "confirmCancelDialog"); } });
展现确定和取消两个按钮
btn_confirmcancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ConfirmCancelUtilDialog dialog = ConfirmCancelUtilDialog.getInstance(MainActivity.this, new ConfirmCancelUtilDialog.DialogSetListener() { @Override public void setDialog(TextView title, TextView message, Button leftBtn, Button rightBtn) { title.setText("保存到"); message.setText("您可以'立即发送'给收件人,也可以保存到'草稿箱'"); leftBtn.setText("立即发送"); rightBtn.setText("草稿箱"); } }); dialog.setDialogClickListener(new ConfirmCancelUtilDialog.DialogClickListener() { @Override public void leftClickListener() { Toast.makeText(MainActivity.this, "立即发送", Toast.LENGTH_SHORT).show(); } @Override public void rightClickListener() { Toast.makeText(MainActivity.this, "草稿箱", Toast.LENGTH_SHORT).show(); } }); dialog.show(getSupportFragmentManager(), "confirmCancelDialog"); } });
展现没有标题的对话框
btn_notitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ConfirmCancelUtilDialog dialog = ConfirmCancelUtilDialog.getInstance(MainActivity.this, new ConfirmCancelUtilDialog.DialogSetListener() { @Override public void setDialog(TextView title, TextView message, Button leftBtn, Button rightBtn) { title.setVisibility(View.GONE); message.setText("发现新版本,是否升级?"); message.setGravity(Gravity.CENTER); leftBtn.setText("确定"); rightBtn.setText("取消"); } }); dialog.setDialogClickListener(new ConfirmCancelUtilDialog.DialogClickListener() { @Override public void leftClickListener() { Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show(); } @Override public void rightClickListener() { Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show(); } }); dialog.show(getSupportFragmentManager(), "confirmCancelDialog"); } });
混淆配置
无参考资料
暂时空缺项目demo下载地址
https://github.com/haiyuKing/ConfirmCancelDialogUtilDemo相关文章推荐
- ConfirmCancelDialog【确认取消对话框】
- AlertConfirmDialog【基于AlertDialog的确认取消对话框】
- 确认对话框ConfirmDialog和选择对话框OptionDialog:猜数游戏
- 确认对话框ConfirmDialog和选择对话框OptionDialog:猜数游戏
- 确认对话框ConfirmDialog和选择对话框OptionDialog:猜数游戏
- javascript window.confirm确认 取消对话框实现代码小结
- 确认对话框ConfirmDialog和选择对话框OptionDialog
- java的confirm确认取消对话框
- javascript window.confirm确认 取消对话框实现代码小结
- java小程序之(GUI)确认对话框JOptionPane.showConfirmDialog
- java 自定义确认取消的Dialog对话框,10秒之后自动关闭
- javascript window.confirm确认 取消对话框实现代码小结
- 确认对话框ConfirmDialog和选择对话框OptionDialog:猜数游戏
- Android 对话框封装(确认/取消 )
- [原创]在ASP.Net 中实现Confirm确认对话框
- DNN交互设计-确认对话框dnnConfirm(八)
- js 弹出确认 取消对话框
- js 弹出确认 取消对话框
- javascript:警告(alert 消息对话框),确认(confirm 消息对话框)
- WebBrowser 控件中屏蔽alert,confirm脚本对话框的方法-默认点击确定或取消。