Android Caja de selección Grupo

Estoy tratando de aplicar algún tipo de validación en un grupo de casillas de verificación (por ejemplo, dos elementos contradictorios no se pueden comprobar juntos) por lo que quiero de alguna manera grupo Check Box objetos y aplicar algo como RequiredFieldValidator en todo el grupo una vez y en que validador I Registrará a los oyentes y realizará la comprobación completa de los objetos de las casillas de verificación.

Lo que imagino sería un código que se vea así:

CheckBoxView allMyCheckBoxes = new CheckBoxView(checkbox1,checkbox2,checkbox3); //varargs validate(allMyCheckBoxes); 

Validar contendrá la lógica de casillas de verificación contradictorias y todo.

¿Es que ya está implementado en algún lugar en Android? Si no, ¿alguien probó algo así? (Esperemos que comparta con nosotros aquí)

Esta lógica permitirá seleccionar una o más casillas de verificación

  private Checkbox day = (checkbox)findviewbyid(R.id.day); private Checkbox night =(checkbox)findviewbyid(R.id.night); day.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (night.isChecked() || day.isChecked()) { } else { night.setChecked(true); } } }); night.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (day.isChecked() || night.isChecked()) { } else { day.setChecked(true); } } }); 

Esto es lo que hice. No estoy seguro de si esto va a funcionar para usted, pero es algo que podría utilizar como un comienzo. Mis casillas de verificación no necesito ninguna en oyentes de cheque, pero usted podría agregarlos a cada uno si usted quisiera

 public class MainActivity extends AppCompatActivity implements View.OnClickListener { private CheckBox chk1, chk2, chk3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); chk1 = (CheckBox) findViewById(R.id.checkbox1); chk2 = (CheckBox) findViewById(R.id.checkbox2); chk3 = (CheckBox) findViewById(R.id.checkbox3); if (chk1.isChecked()) { chk1.setChecked(false); } else if(chk2.isChecked()){ chk2.setChecked(false); } else { chk3.setChecked(false); } chk1.setOnClickListener(this); chk2.setOnClickListener(this); chk3.setOnClickListener(this); } @Override public void onClick(View view) { switch(view.getId()){ case R.id.checkbox1: chk1.setChecked(true); chk2.setChecked(false); chk3.setChecked(false); break; case R.id.checkbox2: chk2.setChecked(true); chk3.setChecked(false); chk1.setChecked(false); break; case R.id.checkbox3: chk3.setChecked(true); chk2.setChecked(false); chk1.setChecked(false); break; } } } 

Puede utilizar los botones de radio y configurar diferentes grupos de ellos.

Esta documentación y este tutorial le ayudarán si encuentra que los Botones de Radio son el camino a seguir.

  • Android - SQLite - SELECCIONAR ENTRE Fecha1 Y Fecha2
  • Android - ¿Está bien poner valores @IntDef dentro de @interface?
  • La clase no es abstracta y no anula el método abstracto onClick (View) en OnClickListener
  • Gestión de devoluciones de llamada del servicio remoto
  • Android WebView devuelve siempre null para javascript getElementById en loadUrl
  • AppView.addJavascriptInterface () no funciona en la API 17
  • ¿Cómo encontrar la raíz de fugas de memoria?
  • Clase interna dentro de una interfaz que implementa la misma interfaz, ¿qué estamos logrando con esto?
  • ¿Por qué Android LocationManager tiene un gran retraso antes de que las actualizaciones de ubicación se inicien si la precisión del ajuste
  • ¿Cuál es la diferencia entre setVideoPath de VideoView y setVideoURI
  • Cómo cargar correctamente las texturas con libgdx assetmanager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.