在Android應用中AlertDialog的點擊按鈕無法關閉對話框如何解決

在Android應用中AlertDialog的點擊按鈕無法關閉對話框如何解決?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創新互聯建站長期為上千客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為吳忠企業提供專業的成都網站建設、成都網站制作,吳忠網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發。

這里的問題:當我點擊確定按鈕,也就是 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() 之前,對話框是不會關閉的。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯行業資訊頻道,感謝您對創新互聯的支持。

當前文章:在Android應用中AlertDialog的點擊按鈕無法關閉對話框如何解決
網頁鏈接:http://m.kartarina.com/article14/pihige.html

成都網站建設公司_創新互聯,為您提供、小程序開發、品牌網站建設網站排名、面包屑導航服務器托管

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設
主站蜘蛛池模板: 青春草无码精品视频在线观| 亚洲中文久久精品无码1| 在线看片无码永久免费视频| 中文无码精品A∨在线观看不卡| 久久久无码一区二区三区| 亚洲欧洲无码一区二区三区| 精品久久久无码中文字幕| 久久久久av无码免费网| 免费A级毛片无码久久版| 99精品国产在热久久无码| 日韩成人无码影院| 亚洲精品无码mⅴ在线观看 | 精品无码一区二区三区在线| 蜜臀AV无码精品人妻色欲| 无码乱人伦一区二区亚洲一| 国模无码一区二区三区不卡| 妖精色AV无码国产在线看| 精品久久无码中文字幕| 久久午夜无码免费| 亚洲中文字幕无码永久在线 | 无码日本电影一区二区网站| 国产日韩精品中文字无码| 日韩人妻无码一区二区三区 | 亚洲AV中文无码乱人伦| 2021无码最新国产在线观看 | 无码熟妇人妻av| 中文无码不卡的岛国片| 无码一区二区三区老色鬼| 亚洲av日韩av高潮潮喷无码| 国产av永久无码天堂影院| 亚洲国产精品无码久久久秋霞2 | 精品人妻系列无码人妻免费视频| 无码人妻一区二区三区兔费| 中文无码字慕在线观看| 中字无码av电影在线观看网站| 亚洲av无码av在线播放| 少妇人妻偷人精品无码AV| 国产午夜无码福利在线看网站| 四虎成人精品国产永久免费无码 | 无码一区二区三区亚洲人妻| 免费无码黄动漫在线观看|