Cómo desmarcar las casillas de verificación cuando la orientación de la pantalla cambia en Android

Soy un programador principiante … pero creo que anular el método onConfigurationChanged () debería hacer el trabajo.

Suponiendo que el cambio de orientación va de vertical a horizontal, puede intentar esto:

paquete com.example.android.checkbox;

importar android.content.res.Configuration;
importar android.support.v7.app.AppCompatActivity;
importar android.os.Bundle;
importar android.widget.CheckBox;
importar android.widget.Toast; clase pública

MainActivity extiende AppCompatActivity {

CheckBox chk1, chk2;

@Anular
vacío protegido onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);

chk1 = (CheckBox) findViewById (R.id.checkBox1);
chk2 = (CheckBox) findViewById (R.id.checkBox2);
}

@Anular
public void onConfigurationChanged (Configuración newConfig) {
super.onConfigurationChanged (newConfig);
// Comprueba la orientación de la pantalla
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
if (chk1.isChecked ()) {
chk1.toggle (); }
if (chk2.isChecked ()) {
chk2.toggle (); }
}
}
}

También debe editar el elemento apropiado en su archivo de manifiesto para incluir el android: configChanges.

<actividad android: name = ". MainActivity"
android: configChanges = “orientación | keyboardHidden”
android: label = “@ string / app_name”>

Marque estas dos respuestas si tiene problemas.

¿Cómo detectar el cambio de orientación en el diseño en Android?

Cómo desmarcar una casilla marcada de Android

editar: perdón por la sangría. Se arruinó todo al pegar desde el editor de texto.

cuando cambia la orientación de la pantalla. tu actividad se destruye por completo y se vuelve a crear. así que si desea que sus casillas de verificación no estén marcadas, desactívelas en oncreate () de su actividad.