안 드 로 이 드 는 alertDialog.builder 가 밖 을 클릭 하거나 리 턴 키 를 누 르 지 않 고 사라 지 는 방법

2332 단어 alertdialogandroid
이 문 제 는 그동안 저 를 괴 롭 혔 습 니 다.제 요 구 는 대화 상 자 를 누 르 는 것 입 니 다.바깥 과 리 턴 키 를 누 르 는 대화 상 자 는 사라 지지 않 습 니 다.리 턴 키 를 누 르 면 잘 해결 되 고 리 턴 키 를 차단 하면 됩 니 다.
근 데 밖 을 누 르 면 해결 이 안 돼 요.전에 어떤 사람 이 모드 대화 상 자 를 말 했다.나 는 잠시 보 았 는데 내 가 원 하 는 효과 가 아니 라 고 생각 했다.popWindow 라면 부모 view 를 제공 해 야 합 니 다.
api 를 다시 보 니 setCancelable 속성 을 설정 하면 됩 니 다.
예:

public void showNoProject(){
    Builder builder = new AlertDialog.Builder(MainActivity.this)
    .setMessage("      ,      ")
    .setPositiveButton("     ", new OnClickListener() {
      
      @Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
        
      }
    })
    .setNegativeButton("  ", new OnClickListener() {
      
      @Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
        
      }
    });
    builder.setCancelable(false);
    builder.show();
  }

또 다른 두 가지 실현 방법 이 있다.
1.oncreate()방법 에서 Dialog 를 설정 하고 화면 을 클릭 하면 취소 할 수 없습니다.인 스 턴 스 코드 는 다음 과 같 습 니 다.

  @Override  
  public void onCreate(Bundle icicle)
  {
   super.onCreate(icicle);
   this.setCancelable(false);//       Dialog   
    int style = DialogFragment.STYLE_NORMAL, theme = 0;
    setStyle(style,theme);
  }
둘째,Activity 를 창의 스타일 로 설정 하여 Dialog 또는 Popupwindow 효 과 를 실현 하 는 것 은 개발 에 자주 사용 되 는 방식 입 니 다.AndroidMenifest.xml 에서 설정 해 야 할 Activity 를 android:theme="@android:style/theme.Dialog"속성 을 추가 하면 됩 니 다.그러나 창 화 된 Activity 의 문 제 는 창 공백 을 클릭 하면 Activity 가 finish 된다 는 것 이다.어떻게 이 문 제 를 피 할 수 있 습 니까?방법 은 다음 과 같 습 니 다.
1、resvaluesstyles.xml

<resources>
  <style name="Theme.SoundRecorder" parent="@android:style/Theme.Holo.DialogWhenLarge">
    <item name="android:windowCloseOnTouchOutside">false</item>
  </style>
</resources>

YourActivity.this.setFinishOnTouchOutside(false);
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기