2011-06-22 5 views
1

私は多くの投稿をチェックしており、それに応じてオリエンテーションの変更をコーディングしています。向きが変わると、TextViews内で入力された値を取得できないという問題があります。誰が私が間違ってどこに行ったかを伝えることができますか?値が格納され、方向が変更されたときに値を取得する方法は?

コーディング:Iを加え、対応する活性のためにマニフェストファイルに

は:

@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(); 
} 

答えて

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

上記方法缶:

android:configChanges="orientation|keyboardHidden" 

はアクティビティで、私は、次のメソッドを追加しましたデータを保存するためにオブジェクトを保存するために使用される...

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

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

uはあなたが欲しいところ今までそれを使用することができ、そのオブジェクトからデータを読んだ後、私たちは向きが変化したときに呼び出されますonCreate() ...でそのオブジェクトを盗んことができます。..

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

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

他のメカニズムもありますが、これは私の知識のための最良の方法です。共有環境設定を使用して、データの保存と検索を行うこともできます。

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

+0

上記の方法は私を助けませんでした!私は最後にSharedPreferenceを使用しました。それはそれで働いた... – Mathew

関連する問題