Custom Dialog Class 분리해서 사용하기

Posted by ITPangPang
2016. 11. 9. 22:53 안드로이드(android)/대화상자(Dialog)


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