Necesito aplicar diferentes diseños para las orientaciones vertical y horizontal de mi actividad. Además, necesito mostrar alerta si la orientación es retrato.Actividad de manipulación rotando en Android
He especificado android:configChanges="orientation|keyboardHidden"
en AndroidManifest. También puedo reemplazar el método onConfigurationChanged así:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
Log.d("tag", "config changed");
super.onConfigurationChanged(newConfig);
int orientation = newConfig.orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT)
Log.d("tag", "Portrait");
else if (orientation == Configuration.ORIENTATION_LANDSCAPE)
Log.d("tag", "Landscape");
else
Log.w("tag", "other: " + orientation);
....
}
Mientras gira de horizontal a registro retrato se parece a:
config changed
Portrait
Pero mientras se cambia de vertical a horizontal se ve como
config changed
Portrait
config changed
Landscape
Por qué onConfigurationChanged se llama dos veces? ¿Cómo puedo evitarlo?
¿Por qué onConfigurationChanged() es una mala manera? ¿Podría darme un enlace con una explicación? Si usaré onCreate() o algo así, la actividad será recreada y sus datos se perderán. – darja