=================================
=================================
=================================
안드로이드 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(); //이설정을 해주면 외부터치 했을때 사라지게된다.
// 사용자 입맛에 따라 코드 설정.
}
}
=================================
=================================
=================================
'스마트기기개발관련 > 안드로이드 개발' 카테고리의 다른 글
[안드로이드] android res/raw 에서 파일 읽기쓰기 관련 (2) | 2013.08.19 |
---|---|
안드로이드 URL(https://play.google.com 이용)로 데이터 확인 해서 업데이트 버전 체크 최신버전 관리 관련 (6) | 2013.07.31 |
안드로이드 AlertDialog 다이얼로그 클래스 크기, 이동 설정 관련 (1) | 2013.07.11 |
android 안드로이드 WebView: html 띄우기/파싱 html 코드보기,가져오기 예제 관련 (1) | 2013.07.08 |
안드로이드 AndroidManifest.xml 의 activity 또는 xml 경로 생략 관련 (0) | 2013.06.20 |