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(); } }} |
파일첨부 :
스크린샷 :
감사합니다.
[출처] http://arabiannight.tistory.com/360
'프로그래밍 > Android (Java)' 카테고리의 다른 글
| 문자열 자르기 (0) | 2015.12.14 |
|---|---|
| MX플레이어를 띄워 URL 동영상 재생하기 (외부앱 구동) (0) | 2015.12.04 |
| Fragment에서 화면 회전시 강제종료 해결 (0) | 2015.11.30 |
| 안드로이드 for 문 (0) | 2015.11.27 |
| 배열 부분 복사 (0) | 2015.11.27 |









TestDialogAttribute.zip