studio solo seleccionar que pueda hacer evento deseleccionar como codigo agrupar activar android radio-button

android - solo - ¿Cómo puedo hacer un RadioButton con texto superpuesto?



radio button xml android (2)

Ok, lo hice usando

answer.setButtonDrawable(android.R.color.transparent);

para eliminar el botón y usar un selector como btn_ans:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="false" android:drawable="@drawable/btn_choix_unsel" /> <item android:state_checked="true" android:drawable="@drawable/btn_choix_sel" /> </selector>

Estoy agregando programáticamente respuestas múltiples a una pregunta como RadioButtons en un RadioGroup (vea el código y la imagen a continuación).

Casi lo logro, pero en lugar de tener un botón de radio con un texto en un costado (ver imagen a continuación), me gustaría tener solo el texto y el fondo.

¿Puedo deshacerme del botón de opción?

¿O puedo establecer mi fondo actual como el botón de opción (con estados marcados / no marcados) y agregar un texto que se superponga?

RadioGroup answer_container = (RadioGroup) findViewById(R.id.answer_container); while (c.isAfterLast() == false) { RadioButton answer = new RadioButton(PCItem.this); answer.setText(c.getString(c.getColumnIndex(DBAdapter.KEY_ANS_TEXT))); answer.setBackgroundResource(R.drawable.btn_ans); answer.setPadding((int)(30 * density), 0, 0, 0); answer.setGravity(Gravity.CENTER_VERTICAL); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams((int)(775 * density), (int)(81 * density)); params.setMargins(0, (int)(20*density), 0, 0); answer.setLayoutParams(params); answer_container.addView(answer); c.moveToNext(); }


Puede usar radioButton.setButtonDrawable() . También puede especificar diferentes formas para cada estado de botón (incluyendo checked / unchecked ) usando un StateListDrawable .

Para eliminar completamente el botón, simplemente puede configurarlo como null :

<RadioButton android:button="@null" ... />

Tenga en cuenta que mediante el código radioButton.setButtonDrawable(null); no funciona! La forma correcta es establecer un StateListDrawable vacío:

radioButton.setButtonDrawable(new StateListDrawable());

Si tiene más elementos, puede crear un estilo personalizado para anular las propiedades predeterminadas de RadioButton :

<style name="CustomRadioButton" parent="@android:style/Widget.CompoundButton.RadioButton"> <item name="android:button">@null</item> <item name="android:paddingLeft">0dp</item> </style>