2017-10-22 22 views
0

android에서 대화 상자를 사용하여 맞춤 팝업을 만들고 있습니다. 사용자 정의 팝업을 사용하는 경우 취소 버튼을 사용하여 닫습니다. 하지만 이제는 그 팝업 밖으로 만져서 닫으려고합니다. 어떻게?팝업의 바깥 쪽을 눌렀을 때 맞춤 팝업을 닫습니다.

지금

private void showDetails() { 
    final Dialog dialog = new Dialog(mContext, android.R.style.Theme_Translucent); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setContentView(R.layout.popup_base_menu); 
    dialog.setCanceledOnTouchOutside(true); 

    text_cancel = (TextView) dialog.findViewById(R.id.text_cancel); 
    txt_create_group_chat = (TextView) dialog.findViewById(R.id.txt_create_group_chat); 
    txt_create_chat = (TextView) dialog.findViewById(R.id.txt_create_chat); 
    txt_create_chatroom = dialog.findViewById(R.id.txt_create_chatroom); 

    text_cancel.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      dialog.dismiss(); 

     } 
    }); 

    txt_create_group_chat.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent in = new Intent(mContext, CreateGroupChat.class); 
      startActivity(in); 
      dialog.cancel(); 
     } 
    }); 
    txt_create_chat.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      Intent in = new Intent(mContext, SearchActivity.class); 
      startActivity(in); 
      dialog.cancel(); 
     } 
    }); 
    txt_create_chatroom.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      Intent in = new Intent(mContext, CreateChatroomActivity.class); 
      startActivity(in); 
      dialog.cancel(); 
     } 
    }); 

    dialog.show(); 

} 
+0

'dialog.setCancelable (true);'시도한 적이 있습니까? – riadrifai

+0

예. 작동하지 않음 –

답변

0

사용

setCanceledOnTouchOutside(true) 

참조 안드로이드 개발자 documentation까지 시도했다.

AlertDialog.Builder을 사용하여 here으로 표시된 대화 상자를 생성하십시오. 이 클래스는 활용 된 Dialog과 동일한 생성자 매개 변수를 제공합니다.

또한이 질문에 이미 answer이 있습니다.

+0

이미 사용자. 그러나 일하지 않았다. –

+0

죄송합니다. 내 코드로 작동하지 않습니다. –

+0

어쩌면 내가 [chat] (https://chat.stackoverflow.com/rooms/157222/android-help)에서 더 당신을 도울 수 있습니다. –

0

세 가지 변화는 대화 상자를 표시하기 전에 만들어 질 :

도움이 될 수 있습니다 마지막 것은 레이아웃 popup_base_menu로 이동하는 루트보기 heightwidth 변경하는 것입니다
dialog.setCanceledOnTouchOutside(true); 
setCancelable(boolean) 

:

wrap_content 

대신 match_parent이어야합니다. 이 변경 사항은 모두 전에 호출해야합니다. dialog.show();