God'sGrace
God'sGrace

Reputation: 171

How to clear the radio button group when next button click action done?

Im new to android..

Im facing a problem in uncheck the radio button in a group....

My problem is....

i am developing an quiz based app. there will be 1 quest and 4 opt(radio buttons) when user opens this app radio button will be unchecked but the prob comes when the user answers 1 quest and when he goes for next quest radio button will be checked.I want to uncheck/reset the radio buttons for every quest.How can i do it?

Another problem which im facing is... If suppose the user selected first button and again he want to change the option so he select another button that time he should not able to select..

How to implement this?

Any help would be appreciated.

    protected void onPostExecute(String file_url) {
        pDialog.dismiss();
     ques1=new ArrayList<String>(new ArrayList<String>(ques1));
        //  j=0;
        TextView txtque = (TextView) findViewById(R.id.que_txt); 
        txtque.setText(ques1.get(j));
answ1=new ArrayList<String>(new ArrayList<String>(answ1));
        btn_practice1.setText(answ1.get(0));
        btn_practice2.setText(answ1.get(1));
        btn_practice3.setText(answ1.get(2));
        btn_practice4.setText(answ1.get(3));
        btn_practicerg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) { 
                RadioButton radioButton = (RadioButton) findViewById(checkedId);
                String temp = radioButton.getText().toString();
                crrtans=new ArrayList<String>(new ArrayList<String>(crrtans));
                if (temp.equals(crrtans.get(l))){
                TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                txtRadio.setText("" + radioButton.getText() + " IS CORRECT");   
                txtRadio.setTextColor(Color.parseColor("#008000"));
            }else{
                //RadioButton radioButton1 = (RadioButton) findViewById(checkedId);
                   // Toast.makeText(Question.this, "" + radioButton.getText(), 2000).show(); 
                    TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                    txtRadio.setText("" + radioButton.getText() + "is INCORRECT");
                    txtRadio.setTextColor(Color.parseColor("#FF0000"));
            }
            }
     });
    Button nextBtn = (Button) findViewById(R.id.nxt_btn);
    nextBtn.setOnClickListener(new Button.OnClickListener(){
      public void onClick(View v){  
          if (j == ques1.size() -1) {
                finish();
            }
          else{ 
            ++j;
            TextView txtque = (TextView) findViewById(R.id.que_txt); 
            txtque.setText(ques1.get(j));
            ++k;
            btn_practice1.setText(answ1.get((k*4)+0));
            btn_practice2.setText(answ1.get((k*4)+1));
            btn_practice3.setText(answ1.get((k*4)+2));
            btn_practice4.setText(answ1.get((k*4)+3));
          }
          btn_practicerg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) { 
                    RadioButton radioButton = (RadioButton) findViewById(checkedId);
                    String temp = radioButton.getText().toString();
                    l++;
                    if (temp.equals(crrtans.get(l))){
                    TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                    txtRadio.setText("" + radioButton.getText() + " IS CORRECT");   
                    txtRadio.setTextColor(Color.parseColor("#008000"));
                }else{
                    //RadioButton radioButton1 = (RadioButton) findViewById(checkedId);
                       // Toast.makeText(Question.this, "" + radioButton.getText(), 2000).show(); 
                        TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                        txtRadio.setText("" + radioButton.getText() + " IS INCORRECT");
                        txtRadio.setTextColor(Color.parseColor("#FF0000"));
                }
                }      
         });
     }
});   
    Button previousbtn = (Button) findViewById(R.id.prv_btn);
    previousbtn.setOnClickListener(new Button.OnClickListener(){
    public void onClick(View v){
        if (j <= 0) {
            Toast.makeText(Question.this, "First Question",Toast.LENGTH_SHORT).show();
            } else {
            --j;
            TextView txtque = (TextView) findViewById(R.id.que_txt); 
            txtque.setText(ques1.get(j));
            --k;
            btn_practice1.setText(answ1.get((k*4)+0));
            btn_practice2.setText(answ1.get((k*4)+1));
            btn_practice3.setText(answ1.get((k*4)+2));
            btn_practice4.setText(answ1.get((k*4)+3));
            }
         btn_practicerg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) { 
                    RadioButton radioButton = (RadioButton) findViewById(checkedId);
                    String temp = radioButton.getText().toString();
                    l--;
                    if (temp.equals(crrtans.get(l))){
                    TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                    txtRadio.setText("" + radioButton.getText() + " IS CORRECT");   
                    txtRadio.setTextColor(Color.parseColor("#008000"));
                }else{
                    //RadioButton radioButton1 = (RadioButton) findViewById(checkedId);
                       // Toast.makeText(Question.this, "" + radioButton.getText(), 2000).show(); 
                        TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                        txtRadio.setText("" + radioButton.getText() + " IS INCORRECT");
                        txtRadio.setTextColor(Color.parseColor("#FF0000"));
                }
                }      
         });
         }
    });
    }

Log cat

             E/AndroidRuntime(1457): FATAL EXCEPTION: main
             E/AndroidRuntime(1457): java.lang.NullPointerException
             E/AndroidRuntime(1457):    at 
           com.example.finalpractice.Question$LoadQuestions$1.onCheckedChanged(Question.java:205)
             E/AndroidRuntime(1457):    at 
           android.widget.RadioGroup.setCheckedId(RadioGroup.java:172)
             E/AndroidRuntime(1457):    at 
           android.widget.RadioGroup.check(RadioGroup.java:166)
             E/AndroidRuntime(1457):    at    
           android.widget.RadioGroup.clearCheck(RadioGroup.java:205)
             E/AndroidRuntime(1457):    at 
           com.example.finalpractice.Question$LoadQuestions$2.onClick(Question.java:238)
             E/AndroidRuntime(1457):    at android.view.View.performClick(View.java:2485)
             E/AndroidRuntime(1457):    at android.view.View$PerformClick.run(View.java:9080)
             E/AndroidRuntime(1457):    at 
           android.os.Handler.handleCallback(Handler.java:587)
             E/AndroidRuntime(1457):    at 
           android.os.Handler.dispatchMessage(Handler.java:92)

Upvotes: 0

Views: 6218

Answers (3)

Sagar Patil
Sagar Patil

Reputation: 1400

Here's the solution.

Add the following 2 lines of code in your onCheckedChanged().

int selectedId = group.getCheckedRadioButtonId();
RadioButton radioButton = (RadioButton) group.findViewById(selectedId);

Made the same changes in your code.

Button previousbtn = (Button) findViewById(R.id.prv_btn);
previousbtn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
    if (j <= 0) {
        Toast.makeText(Question.this, "First Question",Toast.LENGTH_SHORT).show();
        } else {
        --j;
        TextView txtque = (TextView) findViewById(R.id.que_txt); 
        txtque.setText(ques1.get(j));
        --k;
        btn_practice1.setText(answ1.get((k*4)+0));
        btn_practice2.setText(answ1.get((k*4)+1));
        btn_practice3.setText(answ1.get((k*4)+2));
        btn_practice4.setText(answ1.get((k*4)+3));
        }
     btn_practicerg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) { 
            int selectedId = group.getCheckedRadioButtonId();
        RadioButton radioButton = (RadioButton) group.findViewById(selectedId);
                String temp = radioButton.getText().toString();
                l--;
                if (temp.equals(crrtans.get(l))){
                TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                txtRadio.setText("" + radioButton.getText() + " IS CORRECT");   
                txtRadio.setTextColor(Color.parseColor("#008000"));
            }else{
                //RadioButton radioButton1 = (RadioButton) findViewById(checkedId);
                   // Toast.makeText(Question.this, "" + radioButton.getText(), 2000).show(); 
                    TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                    txtRadio.setText("" + radioButton.getText() + " IS INCORRECT");
                    txtRadio.setTextColor(Color.parseColor("#FF0000"));
            }
            }      
     });
     }
});

Upvotes: 0

Sagar Patil
Sagar Patil

Reputation: 1400

Add radioGroup.clearCheck(); to you next button.

 Button nextBtn = (Button) findViewById(R.id.nxt_btn);
nextBtn.setOnClickListener(new Button.OnClickListener(){
  public void onClick(View v){  
      if (j == ques1.size() -1) {
            finish();
        }
      else{ 
        ++j;
        TextView txtque = (TextView) findViewById(R.id.que_txt); 
        txtque.setText(ques1.get(j));
        ++k;
        btn_practicerg.clearCheck();
        btn_practice1.setText(answ1.get((k*4)+0));
        btn_practice2.setText(answ1.get((k*4)+1));
        btn_practice3.setText(answ1.get((k*4)+2));
        btn_practice4.setText(answ1.get((k*4)+3));
      }

Upvotes: 1

Anu
Anu

Reputation: 1914

Use this..

RadioGroup radiogrp = (RadioGroup)findViewById(R.id.radiogrp);

Inside onclick

radiogrp.clearCheck();

Upvotes: 4

Related Questions