2011-11-04 10 views
0

私はアンドロイドのタブ付きアプリケーションで作業しています。最初のタブでは、テキストビュー、スピナーなどの検索エンジンがあります。これらのパラメータを入力して他のタブまたは検索結果のアクティビティに切り替えると、このタブ(検索エンジンタブ)に戻りますフィールドは再初期化されます。しかし、私が検索したものを覚えておくために、その価値を維持したい。 アクティビティを切り替えるときにデータを保持する方法はありますか?アンドロイドでのアクティビティの切り替え中にビューの値を保存する

ありがとうございました。

答えて

1

(新しいアクティビティに移行する前に呼び出される)onSaveInstanceStateと(アクティビティが再開される前に呼び出される)onRestoreInstanceStateをオーバーライドすることができます。 :

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    // Save UI state changes to the savedInstanceState. 
    // This bundle will be passed to onCreate if the process is 
    // killed and restarted. 
    savedInstanceState.putBoolean("MyBoolean", true); 
    savedInstanceState.putDouble("myDouble", 1.9); 
    savedInstanceState.putInt("MyInt", 1); 
    savedInstanceState.putString("MyString", "Welcome back to Android"); 
    // etc. 
    super.onSaveInstanceState(savedInstanceState); 
} 

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    // Restore UI state from the savedInstanceState. 
    // This bundle has also been passed to onCreate. 
    boolean myBoolean = savedInstanceState.getBoolean("MyBoolean"); 
    double myDouble = savedInstanceState.getDouble("myDouble"); 
    int myInt = savedInstanceState.getInt("MyInt"); 
    String myString = savedInstanceState.getString("MyString"); 
} 
0

私はあなたがaddFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)とあなたのタブの活動を開始することを意図オブジェクトを作成していると思います。このようなことをした場合は、この機能を削除してください。例えば、以下のような目的のオブジェクトを作成し、

Intent intent = new Intent(this, tabActivity.class); 

がこれを気に入っていないその場合uが別のタブに切り替える前に、それを残したとして、

Intent intent = new Intent(this, tabActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

ことは、あなたは、タブの正確な状態を取得します。

関連する問題