1. 程式人生 > >Android 呼叫系統dialog

Android 呼叫系統dialog

  1. 前幾天由於專案中要用到dialog,看了一下系統的dialog,發現符合公司需要,因此剛好寫了下來。在此記錄並分享一下。
  • 基本樣式(普通對話方塊)
  • 裡插入圖片描述
    普通樣式,呼叫系統的確定按鈕,由於樣式比較難看。所以很少用。
    程式碼:
private void showNormalDialog(){
    //建立dialog構造器
    AlertDialog.Builder normalDialog = new AlertDialog.Builder(this);
    //設定title
    normalDialog.setTitle(getString(R.string.dialog_normal_text));
    //設定icon
    normalDialog.setIcon(R.mipmap.ic_launcher_round);
    //設定內容
    normalDialog.setMessage(getString(R.string.dialog_normal_content));
    //設定按鈕
    normalDialog.setPositiveButton(getString(R.string.dialog_btn_confirm_text)
            , new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(DialogActivity.this,getString(R.string.dialog_btn_confirm_hint_text)
                    ,Toast.LENGTH_SHORT).show();
            dialog.dismiss();
        }
    });
    //建立並顯示
    normalDialog.create().show();
  }
  • 多選對話方塊
    在這裡插入圖片描述
    程式碼:
    /**
     * 彈出評價短語
     *
     * @param pjdyBeans
     */
    public void showDialog(List<PjdyBean> pjdyBeans) {
        ArrayList<String> yourChoices = new ArrayList<>();
        final String[] items = new String[pjdyBeans.size()];    //pjdybeans是所需要的資料來源
        // 設定預設選中的選項,全為false預設均未選中
        final boolean initChoiceSets[] = new boolean[pjdyBeans.size()];
        for (int i = 0; i < pjdyBeans.size(); i++) {
            items[i] = pjdyBeans.get(i).getEvaluate();
            initChoiceSets[i] = pjdyBeans.get(i).isBoolean();
        }
        yourChoices.clear();
        AlertDialog.Builder multiChoiceDialog =
                new AlertDialog.Builder(XjPlanListActivity.this);
        multiChoiceDialog.setTitle("選擇你需要的評價短語");
        multiChoiceDialog.setMultiChoiceItems(items, initChoiceSets,
                new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which,
                                        boolean isChecked) {
                        if (isChecked) {
                            yourChoices.add(items[which]);
                        } else {
                            yourChoices.remove(items[which]);
                        }
                    }
                });
        multiChoiceDialog.setPositiveButton("確定",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        int size = yourChoices.size();
                        String str = "";
                        for (int i = 0; i < size; i++) {
                            str += yourChoices.get(i) + ", ";
                        }
                        mMPiesEditext.setText(str);    //在頁面上展示你選擇的短語
                    }
                });
        multiChoiceDialog.show();

    }