2011-06-22 4 views
1

J'ai vérifié de nombreux articles, et j'ai codé pour le changement d'orientation. Lorsque l'orientation change, le problème est que je ne suis pas en mesure de récupérer les valeurs entrées dans TextViews. Quelqu'un peut-il dire où je me suis trompé?comment stocker des valeurs et les récupérer lorsque l'orientation change?

Coding:

Dans le fichier manifeste pour l'activité correspondante I ajouté:

android:configChanges="orientation|keyboardHidden" 

En activité, j'ajoute les méthodes suivantes:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.home_screen); 
    //Initialized the widgets 
} 

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    //have written separate layout files for portrait and landscape 
    setContentView(R.layout.home_screen); 
    //Initialized the widgets again 
    retrieveSavedState(); //sets the TextViews again 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    saveState(); //save the TextView values 
} 

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    saveState(); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    retrieveSavedState(); 
} 

Répondre

1
@Override 
public Object onRetainNonConfigurationInstance() 
{ 
    final MyDataObject data = collectMyLoadedData(); 
    return data; 
} 

le procédé ci-dessus peut être utilisé pour enregistrer n'importe quel objet pour enregistrer des données ...

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final MyDataObject data = (MyDataObject) getLastNonConfigurationInstance(); 
    if (data == null) { 
     data = loadMyData(); 
    } 
    ... 
} 

et u peut retreive cet objet dans la onCreate() qui va nous avons appelé lorsque l'orientation change .. après la lecture des données de cet objet, vous pouvez l'utiliser où vous voulez ..

http://developer.android.com/guide/topics/resources/runtime-changes.html

http://developer.android.com/guide/topics/resources/runtime-changes.html

d'autres mécanismes sont également là mais c'est la meilleure façon pour ma connaissance .. vous pouvez également utiliser des préférences partagées pour stocker et récupérer des données ...

http://saigeethamn.blogspot.com/2009/10/shared-preferences-android-developer.html

+0

Les méthodes ci-dessus ne m'a pas aidé !! J'ai utilisé SharedPreference enfin. Ça a marché avec ça ... – Mathew

Questions connexes