Alert.Dialog 去掉 點擊按鈕自動關閉功能

比較優雅的方法:
需要仔細看3點需要注意的地方:
        final AlertDialog addMemberDialog = 
               new AlertDialog.Builder(getContext())
               .setTitle("添加成員")
               .setView(dialogView)
               .setCancelable(false)
               //注意1:需要再這裏設置監聽爲null,防止監聽被替換;
               .setPositiveButton("確認", null)
               .setNegativeButton("取消", null)
               .create();
               //處理dialog自動關閉功能,需要重新設置點擊事件
               //注意2:需要在dialog完全Show出來後再得到Button,不然則有可能獲取到的Button爲null;
               addMemberDialog.setOnShowListener(new DialogInterface.OnShowListener() {
               @Override
               public void onShow(DialogInterface dialogInterface) {
                 addMemberDialog.getButton(AlertDialog.BUTTON_POSITIVE)
                 .setOnClickListener(new View.OnClickListener() {
                    @Override
                public void onClick(View view) {
                    if (TextUtils.isEmpty(nameEt.getText())) {
                        ToastUtil.show("請輸入名稱");
                          return;
                      }
                    if (TextUtils.isEmpty(contentEt.getText())) {
                      ToastUtil.show("請輸入描述");
                      return;
                    }
                     mAdapter.addData(new MemberEntity(), true);
                    addMemberDialog.dismiss();
                 }
             });
        }
    });
//注意3:show 需要放到最後,不然,show的速度過快導致無法設置onShowListener
addMemberDialog.show();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章