package safeluck.drive.evaluation.adapter;
|
|
import android.content.Context;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.CompoundButton;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.RadioButton;
|
import android.widget.TextView;
|
|
import androidx.annotation.NonNull;
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
|
import safeluck.drive.evaluation.R;
|
import safeluck.drive.evaluation.bean.AnswerStatus;
|
import safeluck.drive.evaluation.bean.Question2Answers;
|
|
/**
|
* DriveJudge
|
* Created by lzw on 2021/1/13. 14:42:59
|
* 邮箱:632393724@qq.com
|
* All Rights Saved! Chongqing AnYun Tech co. LTD
|
*/
|
public class LightExamSelectAdapter extends RecyclerView.Adapter<LightExamSelectAdapter.MyViewHolder> {
|
|
private LayoutInflater inflater;
|
private Context mContext;
|
|
OnCheckedListener onCheckedListener;
|
OnAddItemListener onAddItemListener;
|
//记录RadioButton的状态
|
public HashMap<Integer, String> state_boolean = new HashMap<>();
|
private List<Question2Answers> question2AnswersList = new ArrayList<>();
|
|
public LightExamSelectAdapter(Context context) {
|
this.inflater = LayoutInflater.from(context);
|
this.mContext = context;
|
}
|
|
public void setOnCheckedListener(OnCheckedListener checkedListener){
|
this.onCheckedListener = checkedListener;
|
}
|
|
public void setOnAddItemListener(OnAddItemListener onAddItemListener){
|
this.onAddItemListener = onAddItemListener;
|
}
|
|
public interface OnCheckedListener{
|
//position 跟question关联 也就是question_id;
|
void checked(int position,int whichAnswer);
|
}
|
|
public interface OnAddItemListener{
|
void add(int pos);
|
}
|
|
@NonNull
|
@Override
|
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
View view = inflater.inflate(R.layout.light_exam_select_item,parent,false);
|
MyViewHolder myViewHolder = new MyViewHolder(view);
|
return myViewHolder;
|
}
|
|
public void setDatas(List<Question2Answers> answers){
|
question2AnswersList.clear();
|
question2AnswersList.addAll(answers);
|
notifyDataSetChanged();
|
}
|
|
@Override
|
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
|
Question2Answers question2Answers = question2AnswersList.get(position);
|
holder.tv_question.setText(question2Answers.getQuestion());
|
List<AnswerStatus> answerList = question2Answers.getAnswerStatusList();
|
|
holder.linearLayout2.setVisibility(View.GONE);holder.linearLayout3.setVisibility(View.GONE);
|
holder.rb1.setOnCheckedChangeListener(null);
|
|
|
holder.tv_answer1.setText(String.format(mContext.getResources().getString(R.string.answer),question2Answers.getAnswerStatusList().get(0).getAnswer()));
|
holder.rb1.setChecked(question2Answers.getAnswerStatusList().get(0).getChoose_flag()==1?true:false);
|
|
|
|
switch (answerList.size()){
|
case 2:
|
holder.linearLayout2.setVisibility(View.VISIBLE);
|
AnswerStatus answerStatus1 = answerList.get(1);
|
holder.rb2.setOnCheckedChangeListener(null);
|
holder.tv_answer2.setText(String.format(mContext.getResources().getString(R.string.answer),answerStatus1.getAnswer()));
|
holder.rb2.setChecked(answerStatus1.getChoose_flag()==1?true:false);
|
break;
|
case 3:
|
holder.linearLayout2.setVisibility(View.VISIBLE);holder.linearLayout3.setVisibility(View.VISIBLE);
|
AnswerStatus answerStatus2= answerList.get(1);
|
AnswerStatus answerStatus3= answerList.get(2);
|
holder.rb2.setOnCheckedChangeListener(null); holder.rb3.setOnCheckedChangeListener(null);
|
holder.tv_answer2.setText(String.format(mContext.getResources().getString(R.string.answer),answerStatus2.getAnswer()));
|
holder.tv_answer3.setText(String.format(mContext.getResources().getString(R.string.answer),answerStatus3.getAnswer()));
|
|
holder.rb2.setChecked(answerStatus2.getChoose_flag()==1?true:false);
|
holder.rb3.setChecked(answerStatus3.getChoose_flag()==1?true:false);
|
break;
|
}
|
|
holder.imageView.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (onAddItemListener != null){
|
onAddItemListener.add(position);
|
}
|
}
|
});
|
holder.rb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
if (isChecked){
|
holder.rb2.setChecked(false);
|
holder.rb3.setChecked(false);
|
if (onCheckedListener!=null){
|
onCheckedListener.checked(position,0);
|
}
|
}
|
}
|
}); holder.rb2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
if (isChecked){
|
holder.rb1.setChecked(false);
|
holder.rb3.setChecked(false);
|
onCheckedListener.checked(position,1);
|
}
|
}
|
}); holder.rb3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
if (isChecked){
|
holder.rb1.setChecked(false);
|
holder.rb2.setChecked(false);
|
onCheckedListener.checked(position,2);
|
}
|
}
|
});
|
|
}
|
|
@Override
|
public int getItemCount() {
|
return question2AnswersList.size();
|
}
|
|
public class MyViewHolder extends RecyclerView.ViewHolder {
|
|
TextView tv_question;
|
TextView tv_answer1;
|
TextView tv_answer2;
|
TextView tv_answer3;
|
|
ImageView imageView;
|
|
RadioButton rb1,rb2,rb3;
|
|
LinearLayout linearLayout2,linearLayout3;
|
|
public MyViewHolder(@NonNull View itemView) {
|
super(itemView);
|
linearLayout2 = itemView.findViewById(R.id.ll_light_container2);
|
linearLayout3 = itemView.findViewById(R.id.ll_light_container3);
|
imageView = itemView.findViewById(R.id.iv_delete_item);
|
|
tv_question = itemView.findViewById(R.id.tv_question);
|
tv_answer1 = itemView.findViewById(R.id.tv_answer1);
|
tv_answer2 = itemView.findViewById(R.id.tv_answer2);
|
tv_answer3 = itemView.findViewById(R.id.tv_answer3);
|
|
rb1 = itemView.findViewById(R.id.rb1_light);
|
rb2 = itemView.findViewById(R.id.rb2_light);
|
rb3 = itemView.findViewById(R.id.rb3_light);
|
}
|
}
|
}
|