그래서 질문과 4 가지 옵션을 제시하는 퀴즈 앱이 있습니다. 4 개의 옵션은 RecyclerView
에 주어 졌으므로 문자열 (ArrayList
)과 올바른 대답 (문자열)을 RecyclerView
어댑터 생성자에 전달합니다. 이제 선택한 대답이 맞으면 itemView
이 녹색으로 설정되고 잘못하면 빨간색으로 설정됩니다 (정상적으로 작동하는 경우).Android RecyclerView 어댑터 : 현재 항목보기의 클릭 수신기에서 이미 그려진 항목보기 업데이트
내 문제는 내가 잘못된 답을 누르면
내가 선택한 잘못된 답을 함께 녹색으로하는 정답과 itemview (이미 그린)의 배경색을 설정해야한다는 것입니다 빨간색
이
@Override
public void onBindViewHolder(final OptionsAdapter.ViewHolder viewHolder, final int i) {
viewHolder.tv_name.setText(option.get(i));
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (option.get(i).equals(correct)){
Toast.makeText(context,"CORRECT ANSWER :)",Toast.LENGTH_SHORT).show();
viewHolder.itemView.setBackgroundColor(context.getResources().getColor(R.color.correctAnswer));
} else {
Toast.makeText(context,"SORRY INCORRECT ANSWER :(",Toast.LENGTH_SHORT).show();
viewHolder.itemView.setBackgroundColor(context.getResources().getColor(R.color.wrongAnswer));
}
}
});
}
,369 아래에 내 코드를 참조 전환
위의 내 onBindViewHolder
스 니펫에서 arraylist option
에는 4 개의 옵션이 있고 문자열 correct
이 정답입니다.
잘못된 대답을 클릭하면 정답을 녹색으로 바꿀 수 있습니까?
private boolean isSelected;
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean selected) {
isSelected = selected;
}
가 어댑터에이 코드 onClick
추가 : 이미지 아래
잘못 대답은
청취자를 클릭 한 후 arraylist를 업데이트 한 다음 notifyItemChanged (위치)를 호출하십시오. –
목록을 업데이트해야합니다 (옵션). Ronak의 의견을 따르십시오. – ADM
@RonakThakkar 사실상 내 arraylist의 내용을 변경하지 않으므로, 왜 내가 notifyItemChanged (위치)를 호출해야합니까, 당신은 정교하게 주시겠습니까? –