您的位置:首页 > 其它

ConfirmCancelDialogUtil【确认取消对话框封装类】

2017-08-28 00:56 447 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。

前言

对确认取消对话框的封装。

前提:调用对话框的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: