Android 呼叫系統dialog
阿新 • • 發佈:2018-12-28
- 前幾天由於專案中要用到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(); }