騰訊QMUI Android框架使用(三)QMUIDialog

QMUIDialog

提供了一系列常用的對話框芙扎,解決了使用系統(tǒng)默認對話框時在不同 Android 版本上的表現(xiàn)不一致的問題赁濒。使用不同的 Builder 來構(gòu)建不同類型的對話框,這些 Builder 都擁有設(shè)置 title 和添加底部按鈕的功能躬它,不同的 Builder 特有的作用如下:
1.MessageDialogBuilder: 消息類型的對話框 Builder。通過它可以生成一個帶標(biāo)題、文本消息竣稽、按鈕的對話框。
2.ConfirmMessageDialogBuilder: 帶 Checkbox 的消息確認框 Builder霍弹。
3.EditTextDialogBuilder: 帶輸入框的對話框 Builder毫别。
4.MenuDialogBuilder: 菜單對話框 Builder。
5.CheckableDialogBuilder: 單選類型的對話框 Builder典格。
6.MultiCheckableDialogBuilder: 多選類型的對話框 Builder岛宦。
7.CustomDialogBuilder: 自定義對話框內(nèi)容區(qū)域的 Builder。
8.AutoResizeDialogBuilder: 隨鍵盤升降自動調(diào)整 Dialog 高度的 Builder

設(shè)計模式和Dialog一樣耍缴,所以用法也沒什么差異

消息類型對話框(藍色按鈕)

 /**
     * 消息類型對話框(藍色按鈕)
     */
    private void showMessagePositiveDialog() {

        new QMUIDialog.MessageDialogBuilder(context)
                .setMessage("標(biāo)題")
                .setTitle("確認要發(fā)送嗎?")
                .addAction("取消", new QMUIDialogAction.ActionListener() {
                    @Override
                    public void onClick(QMUIDialog dialog, int index) {
                        dialog.dismiss();
                    }
                })
                .addAction("確認", new QMUIDialogAction.ActionListener() {
                    @Override
                    public void onClick(QMUIDialog dialog, int index) {
                        dialog.dismiss();
                    }
                })
                .create(mCurrentDialogStyle).show();
    }
}
微信圖片_201904011130572.png

菜單類型對話框

   /**
     * 菜單類型對話框
     */
    private void showMenuDialog() {
        final  String strs  []=new String[]{"選項一","選項二","選項三"};
        new QMUIDialog.MenuDialogBuilder(context)
                .addItems(strs, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(context,"我點第"+"which"+"個",Toast.LENGTH_SHORT).show();
                    }
                }).create(mCurrentDialogStyle).show();
    }

微信圖片_201904011130571.png

帶checkbox的消息確認框

 /**
     * 帶checkbox的消息確認框
     */
    private void showConfirmMessageDialog() {
        new QMUIDialog.CheckBoxMessageDialogBuilder(context)
                .setTitle("退出后是否刪除賬號信息?")
                .setMessage("刪除賬號信息")
                .setChecked(true)
                .addAction("取消", new QMUIDialogAction.ActionListener() {
                    @Override
                    public void onClick(QMUIDialog dialog, int index) {

                    }
                })
                .addAction("退出", new QMUIDialogAction.ActionListener() {
                    @Override
                    public void onClick(QMUIDialog dialog, int index) {

                    }
                })
                .create(mCurrentDialogStyle)
                .show();

    }

微信圖片_201904011130575.png

單選類型對話框

 /**
     * 單選菜單
     */
    private void showSingleChoiceDialog() {
        final  String [] strs=new  String[]{"選項一","選項二","選項三"};
        final  int checkIndex=1;
        new QMUIDialog.CheckableDialogBuilder(context)
                .addItems(strs, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(context,"選擇一"+"which",Toast.LENGTH_SHORT).show();
                    }
                })
                .setCheckedIndex(checkIndex)
                .create(mCurrentDialogStyle)
                .show();

    }
微信圖片_201904011130574.png

多選類型對話框


    /**
     * 多選菜單
     */
    private void showMultiChoiceDialog() {
        final  String items []=new String[]{"選項1","選項2","選項3","選項4","選項5","選項6","選項7","選項8"};
        final QMUIDialog.MultiCheckableDialogBuilder builder = new QMUIDialog.MultiCheckableDialogBuilder(context)
                .addItems(items, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                })
                .setCheckedItems(new int[]{1, 3});
        builder.addAction("取消", new QMUIDialogAction.ActionListener() {
            @Override
            public void onClick(QMUIDialog dialog, int index) {

            }
        });
        builder.addAction("確定", new QMUIDialogAction.ActionListener() {
            @Override
            public void onClick(QMUIDialog dialog, int index) {
                String result="你選擇了";
                for(int i=0;i<builder.getCheckedItemIndexes().length;i++){
                    result+=""+builder.getCheckedItemIndexes()[i]+"";
                    Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
                    dialog.dismiss();
                }
            }
        });
        builder.create(mCurrentDialogStyle).show();

    }
微信圖片_201904011130573.png

帶輸入框的對話框

 /**
     * 帶輸入框的dialog
     */
    private void showEditTextDialog() {
        final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(context);
        builder.setTitle("我是標(biāo)題");
        builder.setPlaceholder("在此輸入昵稱");
        builder.setInputType(InputType.TYPE_CLASS_TEXT);
        builder.addAction("取消", new QMUIDialogAction.ActionListener() {
            @Override
            public void onClick(QMUIDialog dialog, int index) {

            }
        });
        builder.addAction("確定", new QMUIDialogAction.ActionListener() {
            @Override
            public void onClick(QMUIDialog dialog, int index) {
                String inputStr=builder.getEditText().getText().toString();
                if(!TextUtils.isEmpty(inputStr)){
                    Toast.makeText(context,inputStr,Toast.LENGTH_SHORT).show();
                    dialog.dismiss();
                }else{
                    Toast.makeText(context,"請輸入昵稱",Toast.LENGTH_SHORT).show();
                }

            }
        });
        builder.create(mCurrentDialogStyle).show();

    }
微信圖片_20190401113057.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末砾肺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子防嗡,更是在濱河造成了極大的恐慌变汪,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚁趁,死亡現(xiàn)場離奇詭異裙盾,居然都是意外死亡,警方通過查閱死者的電腦和手機荣德,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門闷煤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涮瞻,你說我怎么就攤上這事鲤拿。” “怎么了署咽?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵近顷,是天一觀的道長。 經(jīng)常有香客問我宁否,道長窒升,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任慕匠,我火速辦了婚禮饱须,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘台谊。我一直安慰自己蓉媳,他們只是感情好譬挚,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著酪呻,像睡著了一般减宣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玩荠,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天漆腌,我揣著相機與錄音,去河邊找鬼阶冈。 笑死闷尿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的眼溶。 我是一名探鬼主播悠砚,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼晓勇,長吁一口氣:“原來是場噩夢啊……” “哼堂飞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绑咱,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤绰筛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后描融,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铝噩,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年窿克,在試婚紗的時候發(fā)現(xiàn)自己被綠了骏庸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡年叮,死狀恐怖具被,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情只损,我是刑警寧澤一姿,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站跃惫,受9級特大地震影響叮叹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜爆存,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一蛉顽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧先较,春花似錦携冤、人聲如沸遥诉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矮锈。三九已至,卻和暖如春睁蕾,著一層夾襖步出監(jiān)牢的瞬間苞笨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工子眶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瀑凝,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓臭杰,卻偏偏與公主長得像粤咪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子渴杆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容