Wie zu deaktivieren oder deaktivieren Sie die radiobutton-Gruppe?
Ich bin neu auf android..
Im vor einem problem deaktivieren Sie den radio-button in einer Gruppe....
Mein problem ist....
Ich entwickle ein quiz-basierte app. es wird 1 quest und 4 opt(radio-buttons), wenn der Benutzer öffnet diese app radio-button wird deaktiviert, aber das prob kommt, wenn der Benutzer Antworten 1 quest und wenn er geht, für die nächste quest radio-button überprüft werden.Ich möchte, um Sie zu deaktivieren/zurücksetzen der radio-buttons für jede quest.Wie kann ich es tun?
Ein anderes problem, das im, denen ist... Wenn angenommen, der vom Benutzer ausgewählte erste Schaltfläche, und wieder er will, um die option zu ändern, so dass er wählen Sie eine andere Taste, die Zeit sollte er nicht in der Lage zu wählen..
Wie implementieren Sie diese?
Jede mögliche Hilfe würde geschätzt.
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); //error // is here 205 line.. 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){ // btn_practicerg.clearCheck(); if (j == ques1.size() -1) { //finish(); showAlert1(); } 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.clearCheck(); 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.clearCheck(); 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")); } } }); } }); }
Logcat
E/AndroidRuntime(893): FATAL EXCEPTION: main
E/AndroidRuntime(893): java.lang.ArrayIndexOutOfBoundsException
E/AndroidRuntime(893): at java.util.ArrayList.get(ArrayList.java:313)
E/AndroidRuntime(893): at
com.example.finalpractice.Question$LoadQuestions$2$1.onCheckedChanged(Question.java:243)
E/AndroidRuntime(893): at
android.widget.RadioGroup.setCheckedId(RadioGroup.java:172)
E/AndroidRuntime(893): at android.widget.RadioGroup.access$600(RadioGroup.java:52)
E/AndroidRuntime(893): at
android.widget.RadioGroup$CheckedStateTracker.onCheckedChanged(RadioGroup.java:342)
E/AndroidRuntime(893): at
android.widget.CompoundButton.setChecked(CompoundButton.java:127)
E/AndroidRuntime(893): at
android.widget.CompoundButton.toggle(CompoundButton.java:86)
E/AndroidRuntime(893): at android.widget.RadioButton.toggle(RadioButton.java:72)
E/AndroidRuntime(893): at
android.widget.CompoundButton.performClick(CompoundButton.java:98)
E/AndroidRuntime(893): at android.view.View$PerformClick.run(View.java:9080)
E/AndroidRuntime(893): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime(893): at android.os.Handler.dispatchMessage(Handler.java:92)
wo ist die Frage.java:205 Zeile im code ?
siehe oben, ich habe erwähnt, in Befehlszeile...helfen Sie mir
haben Sie versuchen
RadioButton radioButton = (RadioButton)group. findViewById(checkedId);
statt RadioButton radioButton = (RadioButton) findViewById(checkedId);
ja habe ich versucht..ich kann nicht klar..welche option ich wählen Sie die gleiche option ausgewählt ist, in der nächsten Frage auch..kann ich nicht deaktivieren... Was ich falsch mache bitte helft mir..
InformationsquelleAutor God'sGrace | 2013-02-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
In meinem Fall habe ich eine radiogroup mit Namen
rb
und 2 radiobuttons (rbY
,rbN
) innerhalb der it.So, dies ist meine Umsetzung mit den
onClickListener
:InformationsquelleAutor Marialena
Ich fand, dass dies nützlich sein https://github.com/ragunathjawahar/deselectable-radio-button. Es ist ein custom radio-button, können Sie de-wählen Sie eine option, das ist schon überprüft worden.
InformationsquelleAutor cking24343
Zu aktivieren/deaktivieren-radio-Schaltfläche, die Sie verwenden können
radioButton.setChecked(true);
(oder false, um Sie zu deaktivieren)Es ist eine Methode, RadioButton, nicht RadioGroup.
Funktioniert nicht..dein code..
InformationsquelleAutor Michał Z.
Ändern Sie Ihren code wie find-id ist für alle radio-buttons in der onCreate() und wählen Sie als global...
in die onClickListener der Schaltfläche weiter schreiben radioButton.setChecked(false); für alle radio-buttons, was Sie verwendet...und entfernen Sie die Zeile btn_practicerg.clearCheck();
ich habe versucht, wie diese funktionieren..
was ist der Fehler?
siehe mein update logcat...
arrayindexoutofboundexception ist für u sind immer Wert, darüber hinaus index
Nein,in meiner zweiten Frage selbst, er zeigt diese Fehler..
InformationsquelleAutor Santosh
Erstellen clearRadioButtons - Methode, und rufen Sie in der onCreate.
InformationsquelleAutor Ramesh R