2017-01-10 13 views
0

私は、アプリケーションにオンラインで&オフラインモードの両方のアプリケーションがあります。 フラグメントがロードされると、ネットワークコールが行われ、データが設定されます。 ユーザーは、ボタンの追加、テキストボックスの編集など、フラグメントUIにいくつか変更を加えます。アプリケーション全体でその状態を維持する必要があります。 私は次のものを持っています&前のボタンを押して、フラグメントの前のボタンを押しても、それを置き換えてgetActivity()。onBackPressed();を呼び出してスタックを追加しようとしていました。アプリケーションからフラグメントの状態を保存する

私が試したこと: 1)値をバンドルに保存するには、大量のデータ/値のために、あまりにも多くのデータのデータがあります。&

答えて

0

viewpagerを使用すると、フラグメントの最後の状態を保持できます。オフスクリーンの制限値が以下に設定されるまでリロードされません。

mViewPager.setOffscreenPageLimit(limit); //limit: integer value >=1 
0

あなたはデータの数が多い場合は、SQLiteを使用し、保存する、そうでなければ、より多くの情報については、共有設定

を使用することができ、このlink

まず共有設定への参照を取得訪問

と共有設定には、この書き込みの後

Context context = getActivity(); 
SharedPreferences sharedPref = context.getSharedPreferences("my_preferences", Context.MODE_PRIVATE); 

を提出

SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString("key", "value"); 

//use editor.apply() if you want to save your data imedialtly 
editor.commit(); 

あなたがデータを取得したい場合(onCreateView/onViewCreated)

public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 

     SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 

     EditText editex = (EditText) view.findViewById(R.id.your_view_id); 
     editext.setText(sharedPref.getString("key", defaultValue)) 
    } 

しかし、覚えておいて、アプリが殺されても、共有設定は、あなたのデータを保存し続ける/

をdestoyed
関連する問題