개발 환경 >
● 작성일 : 2013.02.03
● OS 설치 버전 : Windows7 32bit
● SDK 설치 버전 : 안드로이드 SDK 4.2 (젤리빈) / API LEVEL : 17
● ADT 설치 버전 : 21
● Java 설치 버전 : JDK 1.6.0_20 / JRE6
● 이클립스 설치 버전 : Indigo
● 테스트단말 : 삼성 갤럭시 S2 4.0.4 (아이스크램 샌드위치)
< 프로젝트 적용 >
● Android Build Target / API LEVEL / Complie With : 17
● minSdkVersion : 8
● targetSdkVersion : 16
● Java Compiler Level : 1.6
● Text file encoding : UTF-8
안드로이드/Android Dialog의 각종 속성들 정리 ~!
Dialog의 각종 속성들 정리 입니다.
1) Back키 눌렀을 경우 Dialog Cancle 여부 설정
|
2) Dialog 호출시 배경화면이 검정색으로 바뀌는 것 막기 !
|
3) Dialog 밖을 터치 했을 경우 Dialog 사라지게 하기
mDialog.setCanceledOnTouchOutside(true); |
4) Dialog 밖의 View를 터치할 수 있게 하기 (다른 View를 터치시 Dialog Dismiss)
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); |
5) Dialog 자체 배경을 투명하게 하기
(new ColorDrawable(android.graphics.Color.TRANSPARENT)); |
6) Dialog Cancle시 Event 받기
|
7) Dialog Show시 Event 받기
|
8) Dialog Dismiss시 Event 받기
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 |
package arabiannight.tistory.com.dialogattribute; import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnDismissListener; import android.content.DialogInterface.OnShowListener; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.widget.Toast; public class MainActivity extends Activity { private Dialog mDialog = null ; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); createDialog(); } public void onClick(View v) { switch (v.getId()) { case R.id.btn_click: Toast.makeText(MainActivity. this , "Activity Button 입니다." , Toast.LENGTH_SHORT).show(); case R.id.btn_ok: dismissDialog(); break ; case R.id.btn_cancle: dismissDialog(); break ; default : break ; } } private void createDialog() { final View innerView = getLayoutInflater().inflate(R.layout.dialog, null ); mDialog = new Dialog( this ); mDialog.setTitle( "Title" ); mDialog.setContentView(innerView); // Back키 눌렀을 경우 Dialog Cancle 여부 설정 mDialog.setCancelable( true ); // Dialog 생성시 배경화면 어둡게 하지 않기 mDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); // Dialog 밖을 터치 했을 경우 Dialog 사라지게 하기 // mDialog.setCanceledOnTouchOutside(true); // Dialog 밖의 View를 터치할 수 있게 하기 (다른 View를 터치시 Dialog Dismiss) mDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); // Dialog 자체 배경을 투명하게 하기 // mDialog.getWindow().setBackgroundDrawable // (new ColorDrawable(android.graphics.Color.TRANSPARENT)); // Dialog Cancle시 Event 받기 mDialog.setOnCancelListener( new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { Toast.makeText(MainActivity. this , "cancle listener" , Toast.LENGTH_SHORT).show(); } }); // Dialog Show시 Event 받기 mDialog.setOnShowListener( new OnShowListener() { @Override public void onShow(DialogInterface dialog) { Toast.makeText(MainActivity. this , "show listener" , Toast.LENGTH_SHORT).show(); } }); // Dialog Dismiss시 Event 받기 mDialog.setOnDismissListener( new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { Toast.makeText(MainActivity. this , "dismiss listener" , Toast.LENGTH_SHORT).show(); } }); mDialog.show(); } private void dismissDialog() { if (mDialog != null && mDialog.isShowing()) { mDialog.dismiss(); } } } |
파일첨부 :
스크린샷 :
감사합니다.
'IT > 안드로이드+JAVA' 카테고리의 다른 글
[안드로이드] 내부메모리(Internal Storage)에 Data 저장하기 (펌) (0) | 2016.04.15 |
---|---|
[안드로이드] 화면 터치시 키보드 숨기기, 키보드 자동 실행 막기 예제 (정리) (0) | 2016.04.14 |
[JAVA] System.getProperty() 사용법 (펌) (0) | 2016.04.14 |
안드로이드 System.getProperty("line.separator"); (펌) (0) | 2016.04.14 |
[안드로이드] 인텐트(intent) 이용해서 화면 이동하기 예제 (정리) (0) | 2016.04.12 |