国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android中AlertDialog 點擊按鈕后不關閉對話框的功能

2019-10-23 18:31:38
字體:
來源:轉載
供稿:網友

alertdialog,不關閉,點擊不消失

這里的問題:當我點擊確定按鈕,也就是 AlertDialog 里的 PositiveButton 的時候,我們需要判斷用戶是輸入是否符合我們的預期,如果不符合通常提示用戶重寫輸入,且不關閉當前的對話框,但上圖中點擊按鈕后會自動的關閉窗口。

先看原來的這個是怎么寫的:

private void openDialog() { LinearLayout linearLayout = (LinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.change_password_dialog, null); final EditText originPasswordEt = (EditText) linearLayout.findViewById(R.id.origin_password); TextView forgetPassword = (TextView) linearLayout.findViewById(R.id.forget_password); final AlertDialog dialog = new AlertDialog.Builder(getContext())  .setView(linearLayout)  .setPositiveButton("確定", new DialogInterface.OnClickListener() {   @Override    public void onClick(DialogInterface dialog, int which) {    String originPassword = originPasswordEt.getText().toString().trim();     //傳到后臺    }  })  .create(); dialog.show();}

雖然圖片里和代碼的并不是同一個,但問題是一樣的

setPositiveButton 方法中,即使我們沒有調用 dialog.dismiss()

但對話框還是會自動的關閉,就算我們在 onClick 里判斷輸入的內容,錯誤的提示也會在窗口關閉后才出現。

在 AlertDialog 提供的 API 中我也沒有找到可以設置的地方,如果有還請告知。而我解決這個問題的辦法:

final AlertDialog dialog = new AlertDialog.Builder(getActivity())  .setTitle(msg)  .setView(layout)  .setNegativeButton("取消", new DialogInterface.OnClickListener() {   @Override   public void onClick(DialogInterface dialog, int which) {    dialog.dismiss();   }  })  .setPositiveButton("submit",null)  .setCancelable(true)  .create();dialog.show();//為了避免點擊 positive 按鈕后直接關閉 dialog,把點擊事件拿出來設置dialog.getButton(AlertDialog.BUTTON_POSITIVE)  .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {  Pattern pattern = Pattern.compile("[0-9]*");  Matcher matcher = pattern.matcher(editText.getText());  if (!matcher.matches()){   showToast("請輸入正確的 ID");   break;  }  dialog.dismiss();  } }});

setPositiveButton("submit",null) 監聽事件傳入 null

在調用 dialog.show() 后再設置 Button 的點擊事件,否則 getButton() 會返回空

這樣在我們手動調用 dialog.dismiss() 之前,對話框是不會關閉的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 饶平县| 吴桥县| 双桥区| 新田县| 陇川县| 孝昌县| 鸡西市| 格尔木市| 察哈| 乐东| 布拖县| 株洲县| 清流县| 武鸣县| 云浮市| 汉中市| 旌德县| 陈巴尔虎旗| 瑞安市| 松江区| 武鸣县| 山阴县| 高邑县| 潼关县| 江陵县| 和平区| 潜山县| 张家口市| 宜州市| 涟水县| 渭源县| 呼玛县| 威远县| 尚义县| 五寨县| 类乌齐县| 潼南县| 洮南市| 富宁县| 星子县| 新和县|