내 사용자 정의 어댑터
public class CustomAdapter extends
RecyclerView.Adapter<CustomAdapter.MyViewHolder> {
private ArrayList answerFirst;
private ArrayList answerSecond;
private Context context;
public CustomAdapter(Context context, ArrayList questionList, ArrayList
answerFirst, ArrayList answerSecond) {
this.context = context;
this.answerFirst = answerFirst;
this.answerSecond = answerSecond;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v =
LayoutInflater.from(parent.getContext()).inflate(R.layout.test_items,
parent, false);
return new MyViewHolder(v);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position)
{
holder.firstanswer.setText(answerFirst.get(position).toString());
holder.secondanswer.setText(answerSecond.get(position).toString());
}
@Override
public int getItemCount() {
return questionList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView question;
CheckBox firstanswer;
CheckBox secondanswer;
public MyViewHolder(View itemView) {
super(itemView);
question = (TextView) itemView.findViewById(R.id.question_text);
firstanswer = (CheckBox) itemView.findViewById(R.id.first_answer);
secondanswer = (CheckBox) itemView.findViewById(R.id.second_answer);
}
}
}
입니다
대답 한 경우 나에게 가장 좋은 대답 링크를 제공하십시오 main 클래스 내부의 어댑터 클래스를 만들고 checkbox의 listener 메소드를 RecyclerView가 전역 변수 인 것처럼 필요한 위치로 스크롤하여 액세스 할 수 있습니다 필요한 위치로 스크롤하십시오. 다른
rv.scrollToPosition(youPositionInTheAdapter)
생성자에서 RecyclerView의 인스턴스를 통과하고 같은
을하고 getAdapterPosition()
하여 어댑터 내부의 현재 항목의 위치를 얻기 위해 또는이 같은 레이아웃 매니저와 함께 할 수 있습니다
rv.getLayoutManager().scrollToPosition(youPositionInTheAdapter)
왜 'getApplicationContext()'를 사용하고 있습니까? 그것을 사용하지 마십시오. 컨텍스트 유형에 차이가 있습니다. 응용 프로그램 컨텍스트를 사용하면 메모리 누수가 발생할 수 있습니다. 그 이유는 응용 프로그램 컨텍스트가 다른 어떤 것보다 오래 머무르고 '활동'을 파괴 할 수 없으므로 메모리 문제가 발생할 수 있기 때문입니다. – Sakiboy
@Sakiboy 귀하의 조언을 부탁드립니다 – moslem