본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 해결방법

by 돼지왕 왕돼지 2012. 10. 13.
반응형



android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 해결방법

해당 문제는 보통 Toast 나 Dialog 와 같이 dialog 종류의 view( or window ) 를 호출할 때 발생하는 에러이다.

이 에러가 발생하는 원인은 Toast 와 Dialog 가 Activity 에 종속적인데, Activity 혹은 Activity의 context가 전달되지 않기 때문이다.


Toast.makeText( context, message, duration ).show() 

AlertDialog.Builder( context ); 



위와 같이 Toast 와 Dialog 를 생성할 때 전달하는 context 는 context.getApplicationContext() 로 구한 어플리케이션 컨텍스트가 아닌, Activity 의 context를 전달해야 한다. 즉.. 다음과 같이 말이다.

Toast.makeText( this, message, duration ).show(); // this 는 activity
Toast.makeText( HelloWorldActivity.this, message, duration ).show();

AlertDialog.Builder( this ); // this 는 activity
AleryDialog.Builder( HelloWorldActivity.this ); 


이렇게 하면 문제 해결!


도움이 되셨다면 손가락 꾸욱~ ( 로그인 필요 x )



반응형

댓글