< 개발 환경 > < 프로젝트 적용 > |
안드로이드/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 받기
|
|
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();
}
}
}
파일첨부 :
스크린샷 :
감사합니다.
'Android > Dialog' 카테고리의 다른 글
| 안드로이드/Android Dialog 위치 변경 하기 ~! (0) | 2013.02.04 |
|---|---|
| 안드로이드/Android Dialog 사이즈 조절 하기 ~! (0) | 2013.02.04 |
| 안드로이드/Android PopupWindow를 사용해 보자 ~! (NEW) (4) | 2013.01.19 |
| 안드로이드/Android PopupWindow를 사용해 보자 ~! (3) | 2013.01.17 |
| 안드로이드/Android Activity theme를 이용한 Popup(Dialog)창 만들기~! (1) | 2013.01.04 |
TestDialogAttribute.zip