Я занимаюсь разработкой приложения для онлайн-викторины.Я разработал файл PlayQuiz.java, как показано ниже:
public class PlayQuiz extends AppCompatActivity {
private RecyclerView recyclerView;
DataBaseHelper database;
private List<DmQuiz> quizList;
private QuizAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_quiz);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
recyclerView=(RecyclerView)findViewById(R.id.recycler_view_quiz_display);
database= new DataBaseHelper(PlayQuiz.this);
quizList= database.fillObjQuesList();
adapter=new QuizAdapter(quizList,getApplicationContext());
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(adapter);
});
}
}
Теперь это мой файл QuizAdapter.java
public class QuizAdapter extends RecyclerView.Adapter<QuizAdapter.CustomViewHolder>{
private List<DmQuiz> questionList;
private Context context;
public QuizAdapter(List<DmQuiz> questionList, Context context) {
this.questionList = questionList;
this.context = context;
}
@NonNull
@Override
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView= LayoutInflater.from(parent.getContext()).inflate(R.layout.quiz_display_format,parent,false);
return new CustomViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull final CustomViewHolder holder, final int position) {
DmQuiz questionsList=questionList.get(position);
holder.tvquestion.getLayoutParams().width= LinearLayout.LayoutParams.WRAP_CONTENT;
holder.tvquestion.setText(questionsList.getQuestion());
holder.optA.setText(questionsList.getOpta());
holder.optB.setText(questionsList.getOptb());
holder.optC.setText(questionsList.getOptc());
holder.optD.setText(questionsList.getOptd());
holder.optA.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.optA.setBackgroundColor(context.getResources().getColor(R.color.colorButton));
holder.optA.setBackgroundResource(R.drawable.button_border); holder.optB.setBackgroundResource(R.drawable.button_border_unselected); holder.optC.setBackgroundResource(R.drawable.button_border_unselected); holder.optD.setBackgroundResource(R.drawable.button_border_unselected);
}
});
holder.optB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.optA.setBackgroundResource(R.drawable.button_border_unselected);
holder.optB.setBackgroundResource(R.drawable.button_border);
holder.optC.setBackgroundResource(R.drawable.button_border_unselected);
holder.optD.setBackgroundResource(R.drawable.button_border_unselected);
}
});
holder.optC.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.optA.setBackgroundResource(R.drawable.button_border_unselected);
holder.optB.setBackgroundResource(R.drawable.button_border_unselected);
holder.optC.setBackgroundResource(R.drawable.button_border);
holder.optD.setBackgroundResource(R.drawable.button_border_unselected);
}
});
holder.optD.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.optA.setBackgroundResource(R.drawable.button_border_unselected);
holder.optB.setBackgroundResource(R.drawable.button_border_unselected);
holder.optC.setBackgroundResource(R.drawable.button_border_unselected);
holder.optD.setBackgroundResource(R.drawable.button_border);
}
});
holder.tvClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.optA.setBackgroundResource(R.drawable.button_border_unselected);
holder.optB.setBackgroundResource(R.drawable.button_border_unselected);
holder.optC.setBackgroundResource(R.drawable.button_border_unselected);
holder.optD.setBackgroundResource(R.drawable.button_border_unselected);
}
});
}
@Override
public int getItemCount() {
return questionList.size();
}
public class CustomViewHolder extends RecyclerView.ViewHolder{
TextView tvquestion, tvClear;
Button optA,optB,optC,optD;
public CustomViewHolder(View itemView) {
super(itemView);
tvquestion=(TextView)itemView.findViewById(R.id.tvQuestion);
optA=(Button)itemView.findViewById(R.id.button1);
optB=(Button)itemView.findViewById(R.id.button2);
optC=(Button)itemView.findViewById(R.id.button3);
optD=(Button)itemView.findViewById(R.id.button4);
tvClear=(TextView)itemView.findViewById(R.id.tvClear);
}
}
public QuizAdapter(List<DmQuiz> questionList)
{
this.questionList=questionList;
}
public void setSearchOperation(List<DmQuiz> newList){
questionList= new ArrayList<>();
questionList.addAll(newList);
notifyDataSetChanged();
}
}
Данные в представлении Recycler отображаются из базы данных SQLite.
Теперь я хочу обработать / сохранить щелчки на нескольких кнопках и отправить их на удаленный сервер MySql.Я запутался, как хранить ответы на разные вопросы?Должен ли я использовать ArrayList или что-то еще, пожалуйста, помогите ......