studio programacion herramientas fundamentos con avanzado aplicaciones android radio-button clear

android - programacion - ¿Cómo puedo desmarcar o restablecer el botón de radio?



manual de android en pdf (6)

Soy nuevo en el dominio de Android ..

Estoy desarrollando una aplicación basada en un cuestionario. Habrá 1 pregunta y 4 opciones (botones de opción) cuando el usuario abra esta aplicación. El botón de opción se desactivará, pero el problema surge cuando el usuario responde a 1 búsqueda y, cuando se active la próxima búsqueda, se seleccionará el botón de opción. Deseo desactivar / restablecer los botones de radio para cada pregunta. ¿Cómo puedo hacerlo?

Gracias de antemano...

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)group. findViewById(checkedId); //line 262 String temp = radioButton.getText().toString(); switch(btn_practicerg.getCheckedRadioButtonId()){ case R.id.RB1: if (btn_practice1.isChecked()){ btn_practice2.setChecked(false); btn_practice3.setChecked(false); btn_practice4.setChecked(false); } break; case R.id.RB2: if (btn_practice2.isChecked()){ btn_practice1.setChecked(false); btn_practice3.setChecked(false); btn_practice4.setChecked(false); } break; case R.id.RB3: if (btn_practice3.isChecked()){ btn_practice1.setChecked(false); btn_practice2.setChecked(false); btn_practice4.setChecked(false); } break; case R.id.RB4: if (btn_practice4.isChecked()){ btn_practice1.setChecked(false); btn_practice2.setChecked(false); btn_practice3.setChecked(false); } break; default: btn_practice1.setChecked(false); btn_practice2.setChecked(false); btn_practice3.setChecked(false); btn_practice4.setChecked(false); } ImageView nextBtn = (ImageView) findViewById(R.id.nxt_btn); nextBtn.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ btn_practicerg.clearCheck(); //line 355 } });

Logcat

E/AndroidRuntime(729):at com.example.TEENEINSTIEN.Question$LoadQuestions$2.onCheckedChanged(Question.java:262) E/AndroidRuntime(729):at android.widget.RadioGroup.setCheckedId(RadioGroup.java:172) E/AndroidRuntime(729):at android.widget.RadioGroup.check(RadioGroup.java:166) E/AndroidRuntime(729):at android.widget.RadioGroup.clearCheck(RadioGroup.java:205) E/AndroidRuntime(729):at com.example.TEENEINSTIEN.Question$LoadQuestions$3.onClick(Question.java:355) E/AndroidRuntime(729):at android.view.View.performClick(View.java:2485) E/AndroidRuntime(729):at android.view.View$PerformClick.run(View.java:9080)

Intento así, pero no puedo desmarcar ...


Coloque todos sus botones en un RadioGroup luego, cuando necesite eliminarlos, use RadioGroup.clearCheck();


Creo que el problema es con el objeto btn_practicerg, es decir, si está creando un nuevo objeto RadioGroup cada vez que muestra una nueva pregunta, debe ejecutar RadioGroup.clearCheck () en el nuevo objeto btn_practicerg en lugar de la antigua que creo que está haciendo actualmente.

Aun mejor:

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_practice1.setChecked(false); btn_practice2.setChecked(false); btn_practice3.setChecked(false); btn_practice4.setChecked(false);

para desmarcar todos los botones al principio. Espero que esto resuelva tu problema.


Ponga todo en un grupo, luego use:

buttonGroup1.clearSelection();


Prueba este, el mismo problema se resolvió con esta solución:

  1. establezca el método onclick en los 4 radio1Clicked diga radio1Clicked , radio2Clicked y así
  2. en el método onclick respectivo agregue el siguiente código:

    public void radio1Clicked(View view) { // Note that I have unchecked radiobuttons except the one // which is clicked/checked by user radio2Button.setChecked(false); radio3Button.setChecked(false); radio4Button.setChecked(false); }

  3. Al igual que hacer para los botones de radio restantes. Espero que esto resuelva su problema.

Por favor, siéntase libre de hacer cualquier pregunta con respecto a la solución.


Si el botón Radio pertenece a un grupo de radiología, NUNCA se puede desmarcar solo ese botón programáticamente, por lo que debe hacer un método para deshacer todo primero.

public void unchecked() { RadioGroup x=findViewById(R.id.NameOfRadiogroup); x.clearCheck(); }

y luego hay que llamar al método.


Tenía un solo botón de radio y realmente no quería hacer un grupo de botones de radio. Básicamente, agregué un botón de opción, luego dejé el texto vacío, agregué el checkTextView contiguo (superpuesto) y luego vinculé la función onClick del checkTextView a una función de alternar ->

public void toggle(View view) { if(checkedTextView.isChecked()) { checkedTextView.setChecked(false); actualRadioBtn.setChecked(false); } else { checkedTextView.setChecked(true); actualRadioBtn.setChecked(true); } }

Luego, en la función en la que verifica si ese botón de opción está seleccionado, simplemente puede usar

if(actualRadioBtn.isChecked())....