Android 如何获取checked radioButton的值,以便我能够在下一个活动中以复选框形式显示它们?

Android 如何获取checked radioButton的值,以便我能够在下一个活动中以复选框形式显示它们?,android,checkbox,android-recyclerview,Android,Checkbox,Android Recyclerview,我正在开发一个测验应用程序,在该应用程序中,用户从每张卡片中选择一个单选按钮(每张卡片包含一个问题,有四个选项),当用户单击floatingActionButton时,用户可以看到他/她在下一个活动中解决了哪些问题。问题编号下方的复选框表示他已解决该问题。 我到处找了,但找不到任何有用的东西。我被困在我的项目中。 这是我的密码 MainActivity.java package com.pratyush.onlineexamapp; public class MainActivity exten

我正在开发一个测验应用程序,在该应用程序中,用户从每张卡片中选择一个单选按钮(每张卡片包含一个问题,有四个选项),当用户单击floatingActionButton时,用户可以看到他/她在下一个活动中解决了哪些问题。问题编号下方的复选框表示他已解决该问题。 我到处找了,但找不到任何有用的东西。我被困在我的项目中。 这是我的密码

MainActivity.java

package com.pratyush.onlineexamapp;
public class MainActivity extends AppCompatActivity {
private ArrayList<ModelClass> questionList = new ArrayList<>();
private RecyclerView recyclerView;
FloatingActionButton fabactsbmt,fabctprv;
private QuestionAdapter qAdapter;
private static final String FORMAT = "%02d:%02d";
private RadioGroup rg;
private RadioButton rb;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView = (RecyclerView) findViewById(R.id.rcyclvw);
    final TextView timer=(TextView)findViewById(R.id.timer) ;
    int selectedId=rg.getCheckedRadioButtonId();
    rb=(RadioButton)findViewById(selectedId);
    qAdapter= new QuestionAdapter(this);
    fabactsbmt=(FloatingActionButton)findViewById(R.id.sbmtBtn);
    fabctprv=(FloatingActionButton)findViewById(R.id.prevwBtn);
    RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext(),LinearLayoutManager.HORIZONTAL, false);
    recyclerView.setLayoutManager(mLayoutManager);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.setAdapter(qAdapter);


    fabctprv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent it= new Intent(MainActivity.this,PreviewDetails.class);
            String selectedFromList = (recyclerView.getItemAtPosition(position));
            it.putIntegerArrayListExtra("Respone",);
            rg.clearCheck();
            startActivity(it);
        }
    });
    fabactsbmt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this,"Your test will be submitted without taking you to Preview Activity",Toast.LENGTH_SHORT).show();
        }
    });

    new CountDownTimer(60000, 1000) { // adjust the milli seconds here

        public void onTick(long millisUntilFinished) {

            timer.setText("Time Left:" + " " + String.format(FORMAT,
                    TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(
                            TimeUnit.MILLISECONDS.toHours(millisUntilFinished)),
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(
                            TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))) + "/01:00");
        }

        public void onFinish() {

            AlertDialog.Builder builder = new AlertDialog.Builder(
                    MainActivity.this);
            builder.setTitle("Time Out!!!");
            builder.setMessage("Your Score is" + " " + 100);
            builder.setCancelable(false);
           /* builder.setNegativeButton("NO",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,
                                            int which) {
                            Toast.makeText(getApplicationContext(),"No is clicked",Toast.LENGTH_LONG).show();
                        }
                    });*/
            builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    System.exit(0);
                }
            });
            builder.show();
        }
    }.start();

    prepareTest();
}
public void prepareTest(){

    ModelClass que1=new ModelClass();
    que1.setQueNo("Question:- 1/11");
    que1.setQue("who is the prime minister of india?");
    que1.setOptn1(" Manmohan Singh");
    que1.setOptn2(" Sonia Gandhi");
    que1.setOptn3(" Narendra Modi");
    que1.setOptn4(" Amit Shah");
    que1.setAnswer("Narendra Modi");
    questionList.add(que1);

    ModelClass que2=new ModelClass();
    que2.setQueNo("Question:- 2/11");
    que2.setQue("who is the firs prime minister of india?");
    que2.setOptn1("a) Manmohan Singh");
    que2.setOptn2("b) Sonia Gandhi");
    que2.setOptn3("c) Narendra Modi");
    que2.setOptn4("d) Rajeev Gandhi");
    questionList.add(que2);

    ModelClass que3=new ModelClass();
    que3.setQueNo("Question:- 3/11");
    que3.setQue("who is the president of india?");
    que3.setOptn1("a) Manmohan Singh");
    que3.setOptn2("b) Sonia Gandhi ");
    que3.setOptn3("c) Narendra Modi");
    que3.setOptn4("d) Pratibha Patil");
    questionList.add(que3);

    ModelClass que4=new ModelClass();
    que4.setQueNo("Question:- 4/11");
    que4.setQue("Nobel prize is awarded for which of the following disciplines:");
    que4.setOptn1("a) Literacy,physics");
    que4.setOptn2("b) Chemistry");
    que4.setOptn3("c) Medicine or Physiology");
    que4.setOptn4("d) All of the Above");
    questionList.add(que4);

    ModelClass que5=new ModelClass();
    que5.setQueNo("Question:- 5/11");
    que5.setQue("Garampani Sanctuary is locate in which of the following places:");
    que5.setOptn1("a) Junagarh, Gujarat");
    que5.setOptn2("b)  Kohima, Nagaland");
    que5.setOptn3("c) Diphu, Assam");
    que5.setOptn4("d) Gangtok, Sikkim");
    questionList.add(que5);

    ModelClass que6=new ModelClass();
    que6.setQueNo("Question:- 6/11");
    que6.setQue(" Entomology studies what?");
    que6.setOptn1("a) Behavior of human beings");
    que6.setOptn2("b) Insects");
    que6.setOptn3("c) The origin and history of technical and scientific terms");
    que6.setOptn4("d) The formation of rocks");
    questionList.add(que6);

    ModelClass que7=new ModelClass();
    que7.setQueNo("Question:- 7/11");
    que7.setQue("Galileo was an astronomer who");
    que7.setOptn1("a) developed the telescope");
    que7.setOptn2("b) discovered four satellites of Jupiter");
    que7.setOptn3("c) discovered that the movement of pendulum produces a regular time measurement");
    que7.setOptn4("d) All the above");
    questionList.add(que7);

    ModelClass que8=new ModelClass();
    que8.setQueNo("Question:- 8/11");
    que8.setQue("Who is the father of geometry?");
    que8.setOptn1("a) Aristotle");
    que8.setOptn2("b) Pythagoras");
    que8.setOptn3("c) Euclid");
    que8.setOptn4("d) Kepler");
    questionList.add(que8);

    ModelClass que9=new ModelClass();
    que9.setQueNo("Question:- 9/11");
    que9.setQue("Indian Player Jude Felix is associated with");
    que9.setOptn1("a) Volleyball");
    que9.setOptn2("b) Football");
    que9.setOptn3("c) Hockey");
    que9.setOptn4("d) Tennis");
    questionList.add(que9);

    ModelClass que10=new ModelClass();
    que10.setQueNo("Question:- 10/11");
    que10.setQue("The Indian, who holds the pride of beating the computers in mathematical wizard is:");
    que10.setOptn1("a) Shakuntala Devi");
    que10.setOptn2("b) Raja Ramanna");
    que10.setOptn3("c) Ramanujam");
    que10.setOptn4("d) Rina Panigrahi");
    questionList.add(que10);

    ModelClass que11=new ModelClass();
    que11.setQueNo("Question:- 11/11");
    que11.setQue("Who is popularly called as the Iron Man of India?");
    que11.setOptn1("a) Subhash Chandra Bose");
    que11.setOptn2("b) Sardar Vallabhbhai Patel");
    que11.setOptn3("c) Govind Ballabh Pant");
    que11.setOptn4("d) Jawaharlal Nehru");
    questionList.add(que11);

}
public class QuestionAdapter extends RecyclerView.Adapter<QuestionAdapter.MyViewHolder> {


    Context context;
    public QuestionAdapter(Context context) {
        this.context = context;

    }

    @Override
    public QuestionAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.question_format, parent, false);

        return new MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(QuestionAdapter.MyViewHolder holder, int position) {

        ModelClass model = questionList.get(position);

        holder.queNo.setText(model.getQueNo());
        holder.que.setText(model.getQue());
        holder.opt1.setText(model.getOptn1());
        holder.opt2.setText(model.getOptn2());
        holder.opt3.setText(model.getOptn3());
        holder.opt4.setText(model.getOptn4());
       // Picasso.with(context).load(model.getImg()).into(holder.imgvw);




    }

    @Override
    public int getItemCount() {
        return questionList.size();


    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        private TextView queNo,que,opt1,opt2,opt3,opt4;


        public MyViewHolder(View view) {
            super(view);
            //RadioGroup radioGroup=(RadioGroup)findViewById(R.id.rgrp);
            //RadioButton checkedButton = (RadioButton)findViewById(radioGroup.getCheckedRadioButtonId());
            queNo = (TextView) view.findViewById(R.id.qNotext);
            que = (TextView) view.findViewById(R.id.queText);
            opt1 = (RadioButton) view.findViewById(R.id.opt1);
            opt2 = (RadioButton) view.findViewById(R.id.opt2);
            opt3 = (RadioButton) view.findViewById(R.id.opt3);
            opt4 = (RadioButton) view.findViewById(R.id.opt4);
        }
    }
}
package com.pratyush.onlineexamapp;
public class PreviewDetails extends AppCompatActivity {
private ArrayList<Model> modelArrayList= new ArrayList<>();
GridView gridView;
FloatingActionButton finalSubmit;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_preview_details);
    gridView=(GridView)findViewById(R.id.gridView);
    finalSubmit=(FloatingActionButton)findViewById(R.id.finalsbmt);
    prepareData();

    ResponseAdapter adapter=new ResponseAdapter(this);
    gridView.setAdapter(adapter);

    finalSubmit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(PreviewDetails.this,"Your Test will be submitted",Toast.LENGTH_SHORT).show();
        }
    });



}
public void prepareData(){
    Model qno1=new Model();
    qno1.setQnumber("Question no.1");
    qno1.setCb(true);
    modelArrayList.add(qno1);

    Model qno2=new Model();
    qno2.setQnumber("Question no.2");
    qno2.setCb(true);
    modelArrayList.add(qno2);

    Model qno3=new Model();
    qno3.setQnumber("Question no.3");
    qno3.setCb(false);
    modelArrayList.add(qno3);

    Model qno4=new Model();
    qno4.setQnumber("Question no.4");
    qno4.setCb(true);
    modelArrayList.add(qno4);

    Model qno5=new Model();
    qno5.setQnumber("Question no.5");
    qno5.setCb(false);
    modelArrayList.add(qno5);

    Model qno6=new Model();
    qno6.setQnumber("Question no.6");
    qno6.setCb(true);
    modelArrayList.add(qno6);

    Model qno7=new Model();
    qno7.setQnumber("Question no.7");
    qno7.setCb(true);
    modelArrayList.add(qno7);

    Model qno8=new Model();
    qno8.setQnumber("Question no.8");
    qno8.setCb(true);
    modelArrayList.add(qno8);

    Model qno9=new Model();
    qno9.setQnumber("Question no.9");
    qno9.setCb(false);
    modelArrayList.add(qno9);

    Model qno10=new Model();
    qno10.setQnumber("Question no.10");
    qno10.setCb(true);
    modelArrayList.add(qno10);

    Model qno11=new Model();
    qno11.setQnumber("Question no.11");
    qno11.setCb(true);
    modelArrayList.add(qno11);
}
private class ResponseAdapter extends BaseAdapter{

    private Context context;
    private LayoutInflater layoutInflater;

    private ResponseAdapter( Context context){
        this.context=context;

    }

    @Override
    public int getCount() {
        return modelArrayList.size();
    }

    @Override
    public Object getItem(int i) {
        return modelArrayList.get(i);
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        if (layoutInflater==null)
            layoutInflater=(LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        if (view==null)
            view=layoutInflater.inflate(R.layout.custom_grid,null);
        TextView tv=(TextView) view.findViewById(R.id.tetView);
        CheckBox checkBox=(CheckBox) view.findViewById(R.id.checkboxe);

        tv.setText(modelArrayList.get(i).getQnumber());
        checkBox.setChecked(modelArrayList.get(i).getCb());

        return view;
    }
}
package com.pratyush.onlineexamapp;
公共类MainActivity扩展了AppCompatActivity{
private ArrayList questionList=新建ArrayList();
私人回收站;
浮动操作按钮fabactsbmt、fabctprv;
私人电话适配器;
私有静态最终字符串格式=“%02d:%02d”;
私人放射组rg;
专用无线按钮rb;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView=(recyclerView)findViewById(R.id.rcyclvw);
最终文本视图计时器=(文本视图)findViewById(R.id.timer);
int selectedId=rg.getCheckedRadioButtonId();
rb=(单选按钮)findViewById(selectedId);
qAdapter=新问题适配器(此);
fabactsbmt=(FloatingActionButton)findViewById(R.id.sbmtBtn);
fabctprv=(FloatingActionButton)findViewById(R.id.prevwBtn);
RecyclerView.LayoutManager mLayoutManager=新建LinearLayoutManager(getApplicationContext(),LinearLayoutManager.HORIZONTAL,false);
recyclerView.setLayoutManager(mLayoutManager);
setItemAnimator(新的DefaultItemAnimator());
recyclerView.setAdapter(qAdapter);
fabctprv.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent it=newintent(MainActivity.this,PreviewDetails.class);
字符串selectedFromList=(recyclerView.getItemAtPosition(position));
it.putIntegerArrayListExtra(“Respone”);
rg.clearCheck();
星触觉(it);
}
});
fabactsbmt.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(MainActivity.this,“您的测试将在不带您去预览活动的情况下提交”,Toast.LENGTH_SHORT.show();
}
});
新的倒计时(60000,1000){//在这里调整毫秒
公共void onTick(长毫秒未完成){
timer.setText(“左时间:”+“”+String.format(格式,
TimeUnit.millides.toMinutes(millisuntiltfinished)-TimeUnit.HOURS.toMinutes(
时间单位。毫秒。到小时(毫秒到结束)),
TimeUnit.millides.toSeconds(millisuntiltfinished)-TimeUnit.MINUTES.toSeconds(
时间单位。毫秒。汤姆分钟(毫秒到完成))+“/01:00”);
}
公共无效onFinish(){
AlertDialog.Builder=新建AlertDialog.Builder(
主要活动(本);
builder.setTitle(“超时!!!”;
setMessage(“您的分数为“+”+100);
builder.setCancelable(false);
/*builder.setNegativeButton(“否”,
新建DialogInterface.OnClickListener(){
公共void onClick(对话框接口对话框,
int(其中){
Toast.makeText(getApplicationContext(),“单击否”,Toast.LENGTH\u LONG.show();
}
});*/
setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){
@凌驾
公共void onClick(DialogInterface,inti){
系统出口(0);
}
});
builder.show();
}
}.start();
准备测试();
}
公共空白准备测试(){
ModelClass que1=新的ModelClass();
问题1.塞特昆诺(“问题:-1/11”);
问题1.塞克(“谁是印度总理?”);
问题1.setOptn1(“曼莫汉·辛格”);
问题1.setOptn2(“索尼娅·甘地”);
问题1.setOptn3(“纳伦德拉·莫迪”);
问题1.setOptn4(“阿米特·沙阿”);
问题1.setAnswer(“纳伦德拉·莫迪”);
问题列表。添加(问题1);
ModelClass que2=新的ModelClass();
问题2.塞特昆诺(“问题:-2/11”);
问题2.塞克(“谁是印度第一任总理?”);
问题2.setOptn1(“a)曼莫汉·辛格”);
问题2.setOptn2(“b)索尼娅·甘地”);
问题2.setOptn3(“c)Narendra Modi”);
问题2.setOptn4(“拉吉耶夫·甘地”);
问题列表。添加(问题2);
ModelClass que3=新的ModelClass();
问题3.setQueNo(“问题:-3/11”);
问题3.塞克(“谁是印度总统?”);
问题3.setOptn1(“a)曼莫汉·辛格”);
问题3.setOptn2(“b)索尼娅·甘地”);
问题3.setOptn3(“c)纳伦德拉·莫迪”);
问题3.setOptn4(“d)Pratibha Patil”);
问题列表。添加(问题3);
ModelClass que4=新的ModelClass();
问题4.塞特昆诺(“问题:-4/11”);
问题4.塞克(“诺贝尔奖授予以下哪一个学科:”);
问题4.setOptn1(“a)识字、物理”);
问题4.setOptn2(“b)化学”);
问题4.setOptn3(“c)医学或生理学”);
问题4.设置选项4(“d)上述所有内容”);
问题列表。添加(问题4);
ModelClass que5=新的ModelClass();
问题5.塞特昆诺(“问题:-5/11”);
问题5.setQue(“Garampani保护区位于以下哪个地方:”);
问题5.setOptn1(“a)古吉拉特邦朱纳加尔”);
问题5.setOptn2(“b)纳加兰岛科希马”;
问题5.setOptn3(“c)阿萨姆邦迪福”;
问题5.setOptn4(“锡金甘托克”);
问题列表。添加(问题5);
ModelClass que6=新的ModelClass();
问题6.塞特昆诺(“问题:-6/11”);
问6.setQue(“昆虫学研究什么?”);
问题6.setOptn1(“a)人类行为”);
que6.setOptn2(“b)昆虫”);
que6.setO
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int i) {
            switch (i){
                case R.id.ans1:
                    //may be your answer is correct.
                    //Do existing works!
                    //Save the data to the database.
                    // Retrive the data from the database in the next activity(Intent)
            }
        }
    });
import android.app.Dialog;
import android.os.CountDownTimer;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;

import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;

import java.util.HashMap;
import java.util.Map;

import holder.QuestionHolder;
import model.ExamModel;
import model.QuestionModel;
import model.ResultCardModel;
import model.ResultModel;

public class LiveExamActivity extends AppCompatActivity {
        CardView alert_card, timer_card, exam_card;
        Button start_exam, finish_exam_btn;
        TextView timer, exam_name, alert_text;
        DatabaseReference database;
        ExamModel examModel;
        FirebaseRecyclerAdapter adapter;
        RecyclerView questionrecycler;
        long correct_ans=0;
        CountDownTimer cdtimer;
        String stun;
        Map<String, String> map;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_live_exam);
        database = FirebaseDatabase.getInstance().getReference();
        alert_card = findViewById(R.id.alert_card);
        start_exam = findViewById(R.id.start_exam_btn);
        start_exam.setVisibility(View.GONE);
        timer = findViewById(R.id.count_down_timer);
        timer_card = findViewById(R.id.timer_card);
        map = new HashMap<>();
        exam_card = findViewById(R.id.exam_card);
        exam_name = findViewById(R.id.exam_names);
        alert_text = findViewById(R.id.alert_text);
        finish_exam_btn = findViewById(R.id.finish_exam_btn);
        questionrecycler = findViewById(R.id.questionrecycler);
        finish_exam_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                uploadResult();
            }
        });
        exam_name.setText("Exam Name: "+getIntent().getStringExtra("exam_name"));
        database.child("exams")
                .orderByChild("name")
                .equalTo(getIntent().getStringExtra("exam_name"))
                .addChildEventListener(new ChildEventListener() {
                    @Override
                    public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
                        examModel = dataSnapshot.getValue(ExamModel.class);
                        alert_text.setText("You will get "
                                +examModel.getTotal_question()
                                +" questions to solve in "
                                +examModel.getExam_duration()
                                +" minutes");

                        start_exam.setVisibility(View.VISIBLE);
                    }

                    @Override
                    public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

                    }

                    @Override
                    public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

                    }

                    @Override
                    public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });
        start_exam.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                initalizeExam();
                alert_card.setVisibility(View.GONE);
                timer_card.setVisibility(View.VISIBLE);
                questionrecycler.setVisibility(View.VISIBLE);
                finish_exam_btn.setVisibility(View.VISIBLE);
                cdtimer = new CountDownTimer(examModel.getExam_duration()*1000*60, 1000) {

                    public void onTick(long millisUntilFinished) {
                        timer.setText(""+((millisUntilFinished / 1000)%36000)/60+"m "+(millisUntilFinished / 1000)%60+"s");
                    }

                    public void onFinish() {
                        timer.setText("done!");
                        uploadResult();
                    }
                }.start();
            }
        });


        Query query = FirebaseDatabase.getInstance()
                .getReference()
                .child("questions")
                .child(getIntent().getStringExtra("exam_name"));

        FirebaseRecyclerOptions<QuestionModel> options =
                new FirebaseRecyclerOptions.Builder<QuestionModel>()
                        .setQuery(query, QuestionModel.class)
                        .build();


        adapter = new FirebaseRecyclerAdapter<QuestionModel, QuestionHolder>(options) {
            @Override
            public QuestionHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.live_question_card_recycler, parent, false);
                return new QuestionHolder(view);
            }

            @Override
            protected void onBindViewHolder(final QuestionHolder holder, int position, final QuestionModel model) {

                View.OnClickListener mOnClickListener = new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        if(((RadioButton) v).getText().toString().equals(model.getAns())){
                            map.put(model.getQuestion(), model.getAns());
                        }
                        else {
                            map.values().remove(model.getAns());
                        }
                    }
                };


                holder.clue1.setText(model.getClue1());
                holder.clue1.setOnClickListener(mOnClickListener);
                holder.clue2.setText(model.getClue2());
                holder.clue2.setOnClickListener(mOnClickListener);
                holder.clue3.setText(model.getClue3());
                holder.clue3.setOnClickListener(mOnClickListener);
                holder.clue4.setText(model.getClue4());
                holder.clue4.setOnClickListener(mOnClickListener);




                holder.question.setText(model.getQuestion());
            }

        };
        questionrecycler.setAdapter(adapter);
        questionrecycler.setLayoutManager(new LinearLayoutManager(this));






    }
    @Override
    protected void onStop() {
        super.onStop();
        adapter.stopListening();
    }
    @Override
    protected void onStart() {
        super.onStart();
        adapter.startListening();
    }
    private void uploadResult(){
        try{
            cdtimer.cancel();
        }
        catch (Exception e){}
        final ResultModel resultModel = new ResultModel();
        correct_ans = map.size();
        resultModel.setTotal_ans(correct_ans);
        resultModel.setTotal_questions(examModel.getTotal_question());
        float percentage = (float) correct_ans/(float) examModel.getTotal_question();
        percentage = percentage*30;
        resultModel.setMarks_percentage(percentage);
        resultModel.setName(stun);
        Map map = new HashMap();
        map.put("results/"+getIntent().getStringExtra("exam_name")+"/"+FirebaseAuth.getInstance().getCurrentUser().getUid(),resultModel);


        ResultCardModel resultCardModel = new ResultCardModel();
        resultCardModel.setObtained_marks(percentage);
        resultCardModel.setTotal_ans(correct_ans);
        resultCardModel.setTotal_questions(examModel.getTotal_question());
        resultCardModel.setExam_name(examModel.getName());
        map.put("resultcard/"+FirebaseAuth.getInstance().getCurrentUser().getUid()+"/"+getIntent().getStringExtra("exam_name"),resultCardModel);
        database.updateChildren(map).addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                Toast.makeText(LiveExamActivity.this, "Finished Exam!", Toast.LENGTH_SHORT).show();
                finish();
            }
        });

    }

    @Override
    public void onBackPressed() {
        if (timer_card.getVisibility()== View.VISIBLE){
            final Dialog dialog = new Dialog(LiveExamActivity.this);
            dialog.setCancelable(true);
            dialog.setContentView(R.layout.confirn_exit);
            Button exit = dialog.findViewById(R.id.confirm);
            exit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    uploadResult();
                }
            });
            Button stay = dialog.findViewById(R.id.stay);
            stay.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }
            });
            dialog.show();
        }
        else super.onBackPressed();

    }

    private void initalizeExam(){
        final ResultModel resultModel = new ResultModel();
        resultModel.setTotal_ans(correct_ans);
        resultModel.setTotal_questions(examModel.getTotal_question());
        float percentage = (float) correct_ans/(float) examModel.getTotal_question();
        percentage = percentage*100;
        resultModel.setMarks_percentage(percentage);
        String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
        FirebaseDatabase.getInstance()
                .getReference()
                .child("students")
                .child(uid).child("name").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                stun = dataSnapshot.getValue(String.class);
                resultModel.setName(dataSnapshot.getValue(String.class));
                Map map = new HashMap();
                map.put("results/"+getIntent().getStringExtra("exam_name")+"/"+FirebaseAuth.getInstance().getCurrentUser().getUid(),resultModel);
                /*database.child("results")
                        .child(getIntent().getStringExtra("exam_name"))
                        .child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                        .setValue(resultModel);*/
                final ResultCardModel resultCardModel = new ResultCardModel();
                resultCardModel.setObtained_marks(0);
                resultCardModel.setTotal_ans(0);
                resultCardModel.setExam_name(examModel.getName());
                resultCardModel.setTotal_questions(examModel.getTotal_question());
                map.put("resultcard/"+FirebaseAuth.getInstance().getCurrentUser().getUid()+"/"+getIntent().getStringExtra("exam_name"),resultCardModel);
                database.updateChildren(map);


            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });



    }
}