Custom Dialog Class 분리해서 사용하기
Custom Dialog Class
분리해서 사용하기
ㆍ 이번에는 Dialog를 커스텀할때 따로 Class를
분리해서 필요할때만 가져다가 쓰는 방법에
대해 알아보도록 하겠습니다.
ㆍ 전 따로 두는 경우는.. 서버랑 통신할때? 빼고는
없는 것 같습니다.
서버랑 통신할때
AsyncTask를 사용하는데
보통 대부분 onPreExecute()에서
ProgressDialog를 사용합니다.
저는 근데 ProgressDialog 보다는
따로 로딩중...을 처리하는
이미지를 준비한 후에
FrameAnimation을 넣어서 움짤로
넣는 경우가 많아서..
이때 따로 만들어 둔 다음에
서버와 통신하는 모든부분에서
분리시켜놓은 Dialog를 필요할때만
가져다가 씁니다.
[필요할때 불러오기]
public class TestAsync extends AsyncTask<String, String, String>
{
Context mContext;
CustomDialog dialog;
public TestAsync(Context mContext)
{
this.mContext = mContext;
}
@Override
protected void onPreExecute()
{
dialog = new CustomDialog(mContext);
dialog.createDialog(dialog);
super.onPreExecute();
}
이런식으로
onPreExecute()에서
불러옵니다.
그냥 분리해서 사용하시는분들도
저 2줄만 써주시면 됩니다.
그 다음 따로 분리한 코드를 보면
[CustomDialog.java]
public class CustomDialog extends Dialog
{
public CustomDialog(Context context)
{
super(context);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog_custom);
//서버와 연결중일때 FrameAnimation으로 움짤을 넣는다
//ImageView iv = (ImageView)findViewById(R.id.iv);
//frameAnimation = (AnimationDrawable)iv.getBackground();
}
public void createDialog(CustomDialog dialog)
{
// dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
}
이런식으로 넣어주시면 됩니다.
(FrameAnimation 사용방법은..
나중에 한번 관련글 올려보겠습니다)
[R.layout.dialog_custom]
여기서 원하는 대로 화면을
구성하시면 됩니다.
끝!
'안드로이드(android) > 대화상자(Dialog)' 카테고리의 다른 글
Dialog Dim 제거하기 (2) | 2016.11.08 |
---|---|
Dialog Cancel, Back버튼 관련 (0) | 2016.07.26 |
커스텀 대화상자(custom dialog) (1) | 2016.04.01 |