안드로이드 개발 질문/답변
(글 수 45,052)
클래스.this 라는게 무엇을 의미하는지 이해가 잘 안됩니다.
new TimePickerDialog(ChronoDemo.this, t, dateAndTime.get(Calendar.HOUR_OF_DAY),
dateAndTime.get(Calendar.MINUTE), true).show();
첫번째 매개변수가 ChronoDemo.this 인데 이것이 무엇을 나타내는지 모르겠습니다.
ChronoDemo는 클래스 명입니다.
this의 용법중에 이렇게 쓰는건 처음보네요.
보통 this뒤에 .이 오는데, 이렇게 클래스명뒤에 오는건 어떻게 해석을 해야하나요?
공지사항을 다 읽고 쓰는 첫글입니다.
------------------------------------------------------------------------------------
답변이 없으셔서 내용을 추가합니다.
위 소스코드는 이런 구성입니다.
public class ChronoDemo extends Activity {
/.../
public void onCreate(Bundle icicle) {
/.../
Button btn=(Button)findViewById(R.id.dateBtn);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new DatePickerDialog(ChronoDemo.this,
d,
dateAndTime.get(Calendar.YEAR),
dateAndTime.get(Calendar.MONTH),
dateAndTime.get(Calendar.DAY_OF_MONTH)).show();
}
});
/.../
}
/.../
}
그러니까 버튼을 만들고 리스너를 등록하는부분에 쓰입니다.
첫번째 매개변수 타입은 Context입니다.
만약 자기 자신을 매개변수로 넣고자 한 의도라면 그냥 this라고 써주면 될텐데
왜 앞에 클래스명을 적고 .this라고 했는지 모르겠습니다.
의도는 ChronoDemo 를 가르키고 싶으므로 ChronoDemo.this 를 사용합니다.