onOpenLink에 필요한 파라미터는 URL string입니다. 그런데 님의 코드를 보면
holder.button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mListener != null) {
String url = String.valueOf(holder.getAdapterPosition()); // 버그. 이건 URL이 아님.
mListener.onOpenLink(url);
}
}
});
holder.getAdapterPosition()을 String으로 변환해서 넘기고 있습니다. 이건 URL이 아니고, 아이템의 위치예요. onOpenLink를 사용하려면 getLink()를 가져와서 넘기셔야 하고, holder.getAdapterPosition()을 사용하려면, 제가 했던 것처럼 onButton2Checked 왁 같은 형태로 아이템의 위치를 넘기셔야 겠죠.
코드를 작성하실 때 클래스 이름이나 메소드 이름, 파라미터 이름 등을 잘 만드세요. 그리고 코드를 읽으실 때는 영어 문장이라고 생각하시고 읽도록 해보세요. 자연스러운 영어문장 처럼 될 수록 좋고 깔끔한 코드가 나옵니다.