상세 컨텐츠

본문 제목

안드로이드 AlertDialog 상속하여 커스텀 팝업창을 만들때 창이외에 터치를 해도 창이 안사라지게 하는방법 또는 이벤트

스마트기기개발관련/안드로이드 개발

by AlrepondTech 2013. 7. 24. 11:17

본문

반응형
728x170

 

 

=================================

=================================

=================================

 

 

 

 

안드로이드 AlertDialog 상속하여 커스텀 팝업창을 만들때 창이외에 터치를 해도 창이 안사라지게 하는방법 또는 이벤트

 

AlertDialog 을 상속하여 작성하다 보면 다이얼로그 창 이외의 곳에 터치를 하면 창이 사라지는 효과가 있다 이것을 제어하기위해

AlertDialog의 "public void cancel()" 이 API를 설정하면 본인이 원하는대로 외부로터치했을 때 제어할수 있다.

물론 이렇게 설정을 안사라지게 한후 AlertDialog 을 사라지게하려면 따로 버튼을 구성하거나 기본구성에 확인,취소가 되는 버튼을 설정하고 

그버튼으로만 사라지게 되는 것이다.

 

public class CRoomMakePopup extends AlertDialog

{

 

 

        //밑에 코드는 가상으로 구성한 것입니다. 어떻게 구성하든 본인 자유입니다.

 

public static void show(CBaseActivity act, View view)

{

   //방만들기 요청

   _instance = new CRoomMakePopup(act);   

   _instance.show();

   //..요청 코드

}

 

protected CRoomMakePopup(Context context) {

super(context);

// TODO Auto-generated constructor stub

init();

}

       

       void init()

{

View popupView = View.inflate(getContext(), R.layout.croommakepop, null);

setView(popupView, 0, 0, 0, 0);

 

                String closeStr = "닫기";

Button btn = (Button)popupView.findViewById(R.id.close); //layout xml에 설정한 버튼을 가져온다.

btn.setText(closeStr);

 

 

Resources res = getContext().getResources();

DisplayMetrics dm = res.getDisplayMetrics();

 

int dlgX = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, dm);

int dlgY = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12*CUtils.getDensity(), dm);

 

LayoutParams params = this.getWindow().getAttributes();

params.x      = dlgX;

params.y      = dlgY;

params.width  = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 820, dm);

 

}

 

 

//다이얼로그 view 생성시 창이외의 공간을 눌러도 안사라지게 한다.

public void cancel() //외부터치시 이벤트

{

//super.cancel(); //이설정을 해주면 외부터치 했을때 사라지게된다.

                // 사용자 입맛에 따라 코드 설정.

}

 

 

 

}

 

 

=================================

=================================

=================================

 

 

반응형
그리드형


관련글 더보기

댓글 영역