2012-01-12 16 views
5

Tengo una actividad en la que hay un spinner. ya que para el modo de retrato y el paisaje que tengo diseño diferente, así que estoy cambiando la disposición de onConfigurationChanged métodomanejo de la orientación de la pantalla de android para spinner

@Override 
    public void onConfigurationChanged(Configuration conf) { 
     super.onConfigurationChanged(conf); 
     setContentView(R.layout.layout); 
     initUI(); 
    } 

pero el problema es cuando cambio de orientación, mi spinner es recreada por lo que si spinner está abierto en el modo de retrato que se acerque en modo de paisaje. Mi requisito es: si está abierto en cualquier modo, debe estar abierto después del cambio de orientación. ¿Puede indicarme cómo manejar esta situación?

+0

No he probado, pero hay dos osavestate método y restaurar algo así en spinner.Once ellos tratar – Sameer

+0

Creo que obtendrá la solución de su problema de aquí ..... http: // desarrollador .android.com/resources/articles/faster-screen-orientation-change.html – himanshu

Respuesta

0

try de spinner() método performClick

0

Para detener la recreación de su Spinner puede agregar esto en su archivo de manifiesto

<activity android:name=".Activity_name" 
      android:configChanges="orientation|keyboardHidden"> 

Pero añadiendo este a su diseño no se cambiará automáticamente cuando se girar el dispositivo, por lo que tiene que gestionar de forma manual como éste,

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){ 
      setContentView(R.layout.login_landscape); 
     } 
     else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { 
      setContentView(R.layout.login);   
     } 
    } 

para más información puede comprobar mi respuesta here.

+0

Estoy haciendo lo mismo, pero igual hay una necesidad de establecer el valor del spinner después de configurar el diseño, de lo contrario, el spinner estará en blanco. –

+0

Pruebe el código anterior para mantener el estado. Como la actividad no se vuelve a crear. –

+0

intenté con el código anterior. Estoy viendo en blanco el valor de la flecha giratoria porque tengo una ruleta en modo retrato y tengo otra ruleta con la misma identificación en modo horizontal. –

0

Una vez que la orientación cambia, se llama al método destroy y su actividad vuelve a crearse nuevamente. Para evitar que se invoque el método destroy, debe agregar los códigos siguientes en el archivo de manifiesto. Pero en este caso, solo se puede usar un diseño, si desea reposicionar sus contenidos, debe hacerlo de forma dinámica.

android:configChanges="orientation|keyboardHidden" 
Cuestiones relacionadas