context파라미터에는 어떤것을 넣어야하는가
앞으로 여러분들이 안드로이드를 하다보면 매개변수로 Context클래스를 요구하는 것들을 볼수있습니다. Context란 문맥이라는 뜻인데 쉽게 생각해서 안드로이드의 한 화면 단위 클래스가 Activity인데 이 Activity에서 중요한 부분을 가지고 있는 클래스라고 생각하면 됩니다.
Context context -> Activity이름.this 와 같다고 생각하시고 작업하셔도 무리가없을것입니다.
예를 들어보겠습니다. 버튼을 코드에서 동적생성할때는
Button button =new Button()
이러한 방법으로도 버튼을 생성할수가있습니다. 이 버튼을 생성할때도 매개변수를 필요로하는것을 볼수있는데요 이를 확인하는 단축키는 ctrl + p 입니다.
new Button ( 이자리에 커서를 올리고 ctrl+p)를 하시면
다음과 같이 팝업창으로 필요한 매개변수들을 요구하는것을 알수있습니다.
첫 파라미터에서 context를 필요로하는것을 볼수있는데요
이 자리에 현재사용엑티비티.this (ex MainActivity.this)를 사용하거나
getBaseContext()를 사용하시면 됩니다.
간혹 getBaseContext()를 사용하다가 오류가 발생하는 경우가 생깁니다. 그럴때는 현재사용엑티비티.this (ex MainActivity.this)를 사용하시면 오류가 나지않습니다.
ex)
Button button = new Button(getBaseContext());
Button button2 = new Button(MainActivity.this);