2018-01-09多种简单的弹出框样式设置

这是一个基于AlertDialog和Dialog这两个类封装的多种弹出框样式,其中提供各种简单样式的弹出框使用说明。同时也可自定义弹出框。

项目地址:https://www.github.com/jjdxmashl/jjdxm_dialogui

特性

1.使用链式开发代码简洁明了

2.所有的弹出框样式都在DialogUIUtils这个类中完成,方便查阅方法

3.可以自定义弹出框字体样式

4.简单的类似加载框的样式可以支持两种主题更改默认白色和灰色

截图

demo下载

demo apk下载

Download or grab via Maven:

  com.dou361.dialogui jjdxm-dialoguix.x.x

or Gradle:compile 'com.dou361.dialogui:jjdxm-dialogui:x.x.x'

历史版本:

compile 'com.dou361.dialogui:jjdxm-dialogui:1.0.1'

compile 'com.dou361.dialogui:jjdxm-dialogui:1.0.0'

jjdxm-dialogui requires at minimum Java 9 or Android 2.3.

架包的打包引用以及冲突解决

代码混淆

根据你的混淆器配置和使用,您可能需要在你的proguard文件内配置以下内容:

-keep classcom.dou361.** {

*;

}

AndroidStudio代码混淆注意的问题

快速开始

step1

如果需要使用toast类,采用单例模式的,多次调用toast后只会显示一个,需要初始化DialogUIUtils类,否则会抛异常,使用前初始化即可,代码如下

DialogUIUtils.init(appContext);

step2

如果不需要使用toast类,可以不操作step1,直接使用相对于的弹出框即可。以下分别是部分弹出框的调用代码案例。

自定义弹出框

/**

 * 自定义弹出框 默认居中可取消可点击

 *

 * @param context     上下问

 * @param contentView 自定义view

 * @return

 */

publicstaticBuildBean showCustomAlert(Context context, View contentView)


/**

 * 自定义弹出框 默认可取消可点击

 *

 * @param context     上下文

 * @param contentView 自定义view

 * @param gravity     显示window的位置例如Gravity.center

 * @return

 */

publicstaticBuildBean showCustomAlert(Context context, View contentView, intgravity)


/***

 * 自定义弹出框

 *

 * @param context          上下文

 * @param contentView      自定义view

 * @param gravity          显示window的位置例如Gravity.center

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @return

 */

publicstaticBuildBean showCustomAlert(Context context, View contentView, intgravity, booleancancleable, booleanoutsideTouchable)

具体使用

View rootView = View.inflate(activity, R.layout.custom_dialog_layout, null);

DialogUIUtils.showCustomAlert(this, rootView).show();

弹出toast

/**

 * 弹出toast 默认白色背景可取消可点击

 *

 * @param context 上下文

 * @param msg     提示文本

 */

publicstaticBuildBean showToastTie(Context context, CharSequence msg)


/**

 * 弹出toast 默认可取消可点击

 *

 * @param context   上下文

 * @param msg       提示文本

 * @param isWhiteBg true为白色背景false为灰色背景

 */

publicstaticBuildBean showToastTie(Context context, CharSequence msg, booleanisWhiteBg)


/**

 * 弹出toast

 *

 * @param context          上下文

 * @param msg              提示文本

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param isWhiteBg        true为白色背景false为灰色背景

 */

publicstaticBuildBean showToastTie(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)

具体使用

DialogUIUtils.showToastTie(this, "加载中...").show();

横向加载框

/**

 * 横向加载框 默认白色背景可取消可点击

 *

 * @param context 上下文

 * @param msg     提示文本

 */

publicstaticBuildBean showLoadingHorizontal(Context context, CharSequence msg)


/**

 * 横向加载框 默认可取消可点击

 *

 * @param context   上下文

 * @param msg       提示文本

 * @param isWhiteBg true为白色背景false为灰色背景

 */

publicstaticBuildBean showLoadingHorizontal(Context context, CharSequence msg, booleanisWhiteBg)


/**

 * 横向加载框

 *

 * @param context          上下文

 * @param msg              提示文本

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param isWhiteBg        true为白色背景false为灰色背景

 */

publicstaticBuildBean showLoadingHorizontal(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)

具体使用

DialogUIUtils.showLoadingHorizontal(this, "加载中...").show();

md风格横向加载框

/**

 * md风格横向加载框 默认白色背景可取消可点击

 *

 * @param context 上下文

 * @param msg     提示文本

 */

publicstaticBuildBean showMdLoadingHorizontal(Context context, CharSequence msg)


/**

 * md风格横向加载框 默认可取消可点击

 *

 * @param context   上下文

 * @param msg       提示文本

 * @param isWhiteBg true为白色背景false为灰色背景

 */

publicstaticBuildBean showMdLoadingHorizontal(Context context, CharSequence msg, booleanisWhiteBg)


/**

 * md风格横向加载框

 *

 * @param context          上下文

 * @param msg              提示文本

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param isWhiteBg        true为白色背景false为灰色背景

 */

publicstaticBuildBean showMdLoadingHorizontal(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)

具体使用

DialogUIUtils.showMdLoadingHorizontal(this, "加载中...").show();

竖向加载框

/**

 * 竖向加载框  默认白色背景可取消可点击

 *

 * @param context 上下文

 * @param msg     提示文本

 */

publicstaticBuildBean showLoadingVertical(Context context, CharSequence msg)


/**

 * 竖向加载框 默认可取消可点击

 *

 * @param context   上下文

 * @param msg       提示文本

 * @param isWhiteBg true为白色背景false为灰色背景

 */

publicstaticBuildBean showLoadingVertical(Context context, CharSequence msg, booleanisWhiteBg)


/**

 * 竖向加载框

 *

 * @param context          上下文

 * @param msg              提示文本

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param isWhiteBg        true为白色背景false为灰色背景

 */

publicstaticBuildBean showLoadingVertical(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)

具体使用

?

1DialogUIUtils.showLoadingVertical(this, "加载中...").show();

md风格竖向加载框

/**

 * md风格竖向加载框  默认白色背景可取消可点击

 *

 * @param context 上下文

 * @param msg     提示文本

 */

publicstaticBuildBean showMdLoadingVertical(Context context, CharSequence msg)


/**

 * md风格竖向加载框 默认可取消可点击

 *

 * @param context   上下文

 * @param msg       提示文本

 * @param isWhiteBg true为白色背景false为灰色背景

 */

publicstaticBuildBean showMdLoadingVertical(Context context, CharSequence msg, booleanisWhiteBg)


/**

 * md风格竖向加载框

 *

 * @param context          上下文

 * @param msg              提示文本

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param isWhiteBg        true为白色背景false为灰色背景

 */

publicstaticBuildBean showMdLoadingVertical(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)

具体使用

DialogUIUtils.showMdLoadingVertical(this, "加载中...").show();

md风格弹出框

/***

 * md风格弹出框 默认可取消可点击

 *

 * @param activity 所在activity

 * @param title    标题 不传则无标题

 * @param msg      消息

 * @param listener 事件监听

 * @return

 */

publicstaticBuildBean showMdAlert(Activity activity, CharSequence title, CharSequence msg, DialogUIListener listener)


/***

 * md风格弹出框

 *

 * @param activity         所在activity

 * @param title            标题 不传则无标题

 * @param msg              消息

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 * @return

 */

publicstaticBuildBean showMdAlert(Activity activity, CharSequence title, CharSequence msg, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)

具体使用

DialogUIUtils.showMdAlert(activity, "标题", "文本内容", newDialogUIListener() {

                @Override

                publicvoidonPositive() {


                }


                @Override

                publicvoidonNegative() {


                }


            }).show();

md风格多选框

/**

 * md风格多选框  默认可取消可点击

 *

 * @param activity     所在activity

 * @param title        标题 不传则无标题

 * @param words        消息数组

 * @param checkedItems 默认选中项

 * @param listener     事件监听

 */

publicstaticBuildBean showMdMultiChoose(Activity activity, CharSequence title, CharSequence[] words, boolean[] checkedItems, DialogUIListener listener)


/***

 * md风格多选框

 *

 * @param activity         所在activity

 * @param title            标题 不传则无标题

 * @param words            消息数组

 * @param checkedItems     默认选中项

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 * @return

 */

publicstaticBuildBean showMdMultiChoose(Activity activity, CharSequence title, CharSequence[] words, boolean[] checkedItems, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)

具体使用

String[] words = newString[]{"1", "2", "3"};

            boolean[] choseDefault = newboolean[]{false, false, false};

            DialogUIUtils.showMdMultiChoose(activity, "标题", words, choseDefault, newDialogUIListener() {

                @Override

                publicvoidonPositive() {


                }


                @Override

                publicvoidonNegative() {


                }

            }).show();

单选框

/**

 * 单选框  默认可取消可点击

 *

 * @param activity      所在activity

 * @param title         标题 不传则无标题

 * @param defaultChosen 默认选中项

 * @param words         消息数组

 * @param listener      事件监听

 */

publicstaticBuildBean showSingleChoose(Activity activity, CharSequence title, intdefaultChosen, CharSequence[] words, DialogUIItemListener listener)


/**

 * 单选框

 *

 * @param activity         所在activity

 * @param title            标题 不传则无标题

 * @param defaultChosen    默认选中项

 * @param words            消息数组

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 */

publicstaticBuildBean showSingleChoose(Activity activity, CharSequence title, intdefaultChosen, CharSequence[] words, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)

具体使用

String[] words2 = newString[]{"1", "2", "3"};

                DialogUIUtils.showSingleChoose(activity, "单选", 0, words2, newDialogUIItemListener() {

                    @Override

                    publicvoidonItemClick(CharSequence text, intposition) {

                        showToast(text + "--"+ position);

                    }

                }).show();

提示弹出框

/**

 * 提示弹出框 默认可取消可点击

 *

 * @param activity 所在activity

 * @param title    标题 不传则无标题

 * @param listener 事件监听

 */

publicstaticBuildBean showAlert(Activity activity, CharSequence title, CharSequence msg, DialogUIListener listener)


/**

 * 提示弹出框

 *

 * @param activity         所在activity

 * @param title            标题 不传则无标题

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 */

publicstaticBuildBean showAlert(Activity activity, CharSequence title, CharSequence msg, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)

具体使用

DialogUIUtils.showAlert(activity, "标题", "文本内容", newDialogUIListener() {

                @Override

                publicvoidonPositive() {


                }


                @Override

                publicvoidonNegative() {


                }


            }).show();

横向弹出框

/**

 * 横向弹出框  默认可取消可点击

 *

 * @param activity 所在activity

 * @param title    标题 不传则无标题

 * @param msg      消息

 * @param listener 事件监听

 */

publicstaticBuildBean showAlertHorizontal(Context activity, CharSequence title, CharSequence msg, DialogUIListener listener)


/**

 * 横向弹出框

 *

 * @param activity         所在activity

 * @param title            标题 不传则无标题

 * @param msg              消息

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 */

publicstaticBuildBean showAlertHorizontal(Context activity, CharSequence title, CharSequence msg, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)

具体使用

DialogUIUtils.showAlertHorizontal(activity, "标题", "文本内容", newDialogUIListener() {

                @Override

                publicvoidonPositive() {


                }


                @Override

                publicvoidonNegative() {


                }


            }).show();

竖向弹出框

/**

 * 竖向弹出框  默认可取消可点击

 *

 * @param activity 所在activity

 * @param title    标题 不传则无标题

 * @param msg      消息

 * @param listener 事件监听

 */

publicstaticBuildBean showAlertVertical(Context activity, CharSequence title, CharSequence msg, DialogUIListener listener)


/**

 * 竖向弹出框

 *

 * @param activity         所在activity

 * @param title            标题 不传则无标题

 * @param msg              消息

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 */

publicstaticBuildBean showAlertVertical(Context activity, CharSequence title, CharSequence msg, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)

具体使用

DialogUIUtils.showAlertVertical(activity, "标题", "文本内容", newDialogUIListener() {

                @Override

                publicvoidonPositive() {


                }


                @Override

                publicvoidonNegative() {


                }


            }).show();

中间弹出列表

/**

 * 中间弹出列表 默认可取消可点击

 *

 * @param context  上下文

 * @param words    素组集合

 * @param listener 事件监听

 * @return

 */

publicstaticBuildBean showCenterSheet(Context context, List words, DialogUIItemListener listener)


/***

 * 中间弹出列表

 *

 * @param context          上下文

 * @param words            素组集合

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 * @return

 */

publicstaticBuildBean showCenterSheet(Context context, List words, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)

具体使用

List strings = newArrayList<>();

            strings.add("1");

            strings.add("2");

            strings.add("3");

            DialogUIUtils.showCenterSheet(activity, strings, newDialogUIItemListener() {

                @Override

                publicvoidonItemClick(CharSequence text, intposition) {

                }


                @Override

                publicvoidonBottomBtnClick() {

                }

            }).show();

带取消的底部弹出列表

/**

 * 带取消的底部弹出列表 默认可取消可点击

 *

 * @param context   上下文

 * @param words     素组集合

 * @param bottomTxt 底部按钮文本

 * @param listener  事件监听

 * @return

 */

publicstaticBuildBean showBottomSheetAndCancel(Context context, List words, CharSequence bottomTxt, DialogUIItemListener listener)


/***

 * 带取消的底部弹出列表

 *

 * @param context          上下文

 * @param words            素组集合

 * @param bottomTxt        底部按钮文本

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 * @return

 */

publicstaticBuildBean showBottomSheetAndCancel(Context context, List words, CharSequence bottomTxt, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)

具体使用

List strings = newArrayList<>();

            strings.add("1");

            strings.add("2");

            strings.add("3");

            DialogUIUtils.showBottomSheetAndCancel(activity, strings, "取消", newDialogUIItemListener() {

                @Override

                publicvoidonItemClick(CharSequence text, intposition) {

                }


                @Override

                publicvoidonBottomBtnClick() {

                }

            }).show();

底部弹出列表

/**

 * 底部弹出列表 默认可取消可点击

 *

 * @param context  上下文

 * @param datas    集合需要BottomSheetBean对象

 * @param listener 事件监听

 * @return

 */

publicstaticBuildBean showBottomSheet(Activity context, List datas, DialogUIItemListener listener)


/***

 * 底部弹出列表

 *

 * @param context          上下文

 * @param datas            集合需要BottomSheetBean对象

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 * @return

 */

publicstaticBuildBean showBottomSheet(Activity context, List datas, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)

具体使用

List datass = newArrayList<>();

            datass.add(newBottomSheetBean(0, "1"));

            datass.add(newBottomSheetBean(0, "2"));

            datass.add(newBottomSheetBean(0, "3"));

            DialogUIUtils.showBottomSheet(this, datass, newDialogUIItemListener() {

                @Override

                publicvoidonItemClick(CharSequence text, intposition) {


                }

            }).show();

输入框

/**

 * 输入框 默认可取消可点击

 *

 * @param context   上下文

 * @param title     标题

 * @param hint1     第一个文本框提示语

 * @param hint2     第二个文本框提示语

 * @param firstTxt  第一个按钮文本

 * @param secondTxt 第二个按钮文本

 * @param listener  事件监听

 * @return

 */

publicstaticBuildBean showAlertInput(Context context, CharSequence title, CharSequence hint1, CharSequence hint2, CharSequence firstTxt, CharSequence secondTxt, DialogUIListener listener)


/***

 * 输入框

 *

 * @param context          上下文

 * @param title            标题

 * @param hint1            第一个文本框提示语

 * @param hint2            第二个文本框提示语

 * @param firstTxt         第一个按钮文本

 * @param secondTxt        第二个按钮文本

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 * @return

 */

publicstaticBuildBean showAlertInput(Context context, CharSequence title, CharSequence hint1, CharSequence hint2, CharSequence firstTxt, CharSequence secondTxt, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)

具体使用

DialogUIUtils.showAlertInput(activity, "登录", "请输入用户名", "请输入密码", "登录", "取消", newDialogUIListener() {

                @Override

                publicvoidonPositive() {


                }


                @Override

                publicvoidonNegative() {


                }


                @Override

                publicvoidonGetInput(CharSequence input1, CharSequence input2) {

                }

            }).show();

md风格竖向底部弹出列表

/**

 * md风格竖向底部弹出列表 默认可取消可点击

 *

 * @param context   上下文

 * @param title     标题

 * @param datas     集合需要BottomSheetBean对象

 * @param bottomTxt 底部item文本

 * @param listener  事件监听

 * @return

 */

publicstaticBuildBean showMdBottomSheetVertical(Context context, CharSequence title, List datas, CharSequence bottomTxt, DialogUIItemListener listener)


/***

 * md风格竖向底部弹出列表

 *

 * @param context          上下文

 * @param title            标题

 * @param datas            集合需要BottomSheetBean对象

 * @param bottomTxt        底部item文本

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 * @return

 */

publicstaticBuildBean showMdBottomSheetVertical(Context context, CharSequence title, List datas, CharSequence bottomTxt, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)

具体使用

List datass = newArrayList<>();

            datass.add(newBottomSheetBean(0, "1"));

            datass.add(newBottomSheetBean(0, "2"));

            datass.add(newBottomSheetBean(0, "3"));

            DialogUIUtils.showMdBottomSheetVertical(this, datass, newDialogUIItemListener() {

                @Override

                publicvoidonItemClick(CharSequence text, intposition) {


                }

            }).show();

md风格横向底部弹出列表

/**

 * md风格横向底部弹出列表 默认可取消可点击

 *

 * @param context          上下文

 * @param title            标题

 * @param datas            集合需要BottomSheetBean对象

 * @param bottomTxt        底部item文本

 * @param columnsNum       列数量

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 * @return

 */

publicstaticBuildBean showMdBottomSheetHorizontal(Context context, CharSequence title, List datas, CharSequence bottomTxt, intcolumnsNum, DialogUIItemListener listener)


/***

 * md风格横向底部弹出列表

 *

 * @param context          上下文

 * @param title            标题

 * @param datas            集合需要BottomSheetBean对象

 * @param bottomTxt        底部item文本

 * @param columnsNum       列数量

 * @param cancleable       true为可以取消false为不可取消

 * @param outsideTouchable true为可以点击空白区域false为不可点击

 * @param listener         事件监听

 * @return

 */

publicstaticBuildBean showMdBottomSheetHorizontal(Context context, CharSequence title, List datas, CharSequence bottomTxt, intcolumnsNum, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)

具体使用

List datass = newArrayList<>();

            datass.add(newBottomSheetBean(0, "1"));

            datass.add(newBottomSheetBean(0, "2"));

            datass.add(newBottomSheetBean(0, "3"));

            DialogUIUtils.showMdBottomSheetHorizontal(this, datass, newDialogUIItemListener() {

                @Override

                publicvoidonItemClick(CharSequence text, intposition) {


                }

            }).show();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容