Utilizzare il onConfigurationChanged metodo di attività. Vedere il seguente codice:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
È inoltre necessario modificare il appropriata elemento nel file manifest per includere il Android: configChanges Basta vedere il codice qui sotto:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
NOTA: con Android 3.2 (livello API 13) o superiore, anche le "dimensioni dello schermo" cambiano quando il dispositivo passa dall'orientamento verticale a quello orizzontale. Pertanto, se si desidera impedire il riavvio del runtime a causa di cambiamenti di orientamento durante lo sviluppo per il livello API 13 o superiore, è necessario dichiarare android: configChanges = "orientation | screenSize" per livello API 13 o superiore.
Spero che questo vi aiuterà a ... :)
fonte
2011-04-20 07:15:35
Nel mio caso, onCreate() è stato chiamato quando cambia l'orientamento. –