2017-01-10 4 views
0

У меня есть приложение, в котором приложение имеет как онлайн & автономный режим. После загрузки фрагмента выполняется сетевой вызов и устанавливаются данные. Пользователь вносит некоторые изменения в интерфейс фрагмента, такие как добавление кнопок, редактирование текстовых полей и т. Д. Я должен поддерживать это состояние во всем приложении. У меня есть следующий & предыдущие кнопки, когда я нажимаю предыдущую кнопку на фрагменте, перезагружается, хотя я пытался добавить его обратно в стек, заменяя его и вызывая getActivity(). OnBackPressed() ;.Сохранение состояния фрагмента через приложение

Вещи, которые я пробовал: 1) Сохранение значений в связках - это слишком много данных & hard ti извлекается из-за большого количества данных/значений.

ответ

0

Если вы используете viewpager, вы можете сохранить последнее состояние фрагментов, и он не перезагрузится до тех пор, пока не будет установлен нижний предел u, как показано ниже.

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

Если у вас есть большое количество данных, которые вы хотите сохранить, использовать SQLite, в противном случае вы можете использовать общие предпочтения

Для получения дополнительной информации посетите этот link

Сначала получите ссылку на общие предпочтения файл

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

после этого записи в общий Preferences с

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

Смежные вопросы