컴파일에러

Mobile/Android Programming


OnClickListener mClickListener = new OnClickListener() {
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.searchButton:
			Toast.makeText(this, "make Toast!!", Toast.LENGTH_SHORT).show();
			break;
		}
	}
}
위 코드를 컴파일 하려고 하니 계속 에러가 났다. 
에러는 아래와 같다.
The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new View.OnClickListener(){}, String, int)

여기서 컴파일이 되지 않았던 이유는 this 라는 것 때문이다.
검색을 해보니 아래와 같이 해결을 하라고 되어있다. "this" is refering to the View.OnClickListener instead of your Activity.
this가 엑티비티를 가라키는 것이 아니라 View.OnClickListener를 가리키고 있어서 그렇다.
그래서 위 코드를 아래와 같이 바꾸니까 해결되었다.



OnClickListener mClickListener = new OnClickListener() {
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.searchButton:
			Toast.makeText(Main.this, "make Toast!!", Toast.LENGTH_SHORT).show();
			break;
		}
	}
}