안드로이드

안드로이드 Dialog 생성 시 Context 인자에 getApplicationContext() 사용 시 에러 발생

알통몬_ 2018. 11. 7. 14:35
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


안드로이드에서 다이얼로그를 만들 때

생성자에 Context context 인자가 있어서

Dialog d = new Dialog(this);

이런 식으로 넣어줘야 합니다.

그런데 인자가 context이다보니

getApplicatonContext() 를 넣는 경우가 있는데요.

넣게 되면

Unable to add window -- token null is not for an application

에러가 발생하게 됩니다.

때문에 this 를 넣어주거나 클래스이름.this를 넣어줘야 합니다.

또는 context 대신에 activity를 넣어도 되니다.

private Activity activity;

Function(Activity activity) {
this.activity = activity;
}

void showDialog() {
MenuDialog dialog = new MenuDialog(activity);
dialog.setActivity(activity);
if(dialog.getWindow() != null) {
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
dialog.setCancelable(false);
}
dialog.show();
}

이런 식으로요.

이상입니다.

반응형