티스토리 뷰
View.OnClickListener 인터페이스를 상속받게 되는 경우 onClick() 메서드를 구현해야 하는데, 해당 함수 안에서는 외부 클래스의 변수를 참조하지 못한다. 정확하게는 final 변수가 아닌 변수는 참조하지 못한다.
하지만 동적변수를 전달 해야 하는 경우가 있을때에는 아래와 같이 View.OnClickListener 를 상속받아 변수를 전달하는 방법을 사용한다.
public abstract class OnClickListenerPutIndex implements View.OnClickListener {
protected int index;
public OnClickListenerPutIndex(int index) {
this.index = index;
}
}
public View mView;
for (int i = 0; i < 10; i++) {
mView.setOnClickListener(new OnClickListenerPutIndex(i) {
@Override
public void onClick(View v) {
Log.i("mView Clicked Index=", index);
}
});
}
'Computer > Android' 카테고리의 다른 글
[Android] EditText 스크린 키보드 설정 (0) | 2020.03.13 |
---|---|
[Android] WebView 설정 기본 (0) | 2020.03.08 |
[Android] 안드로이드 애니메이션(Animation) 효과 주기 (0) | 2020.02.26 |
[Android] Touch, onInterceptTouchEvent, dispatchTouchEvent (0) | 2020.02.24 |
[Android] View, ViewGroup (0) | 2020.02.24 |
댓글