2016-07-26 6 views
0

Я создал фрагмент, где я использовал элементы recyclerview и recyler, которые можно выбрать/удалить. Но проблема в том, что когда я перехожу к другому фрагменту и обратно к тому же фрагменту, то выбранные данные теряются.Как восстановить состояние андроидального фрагмента, где recyclerView выбрал элемент

Как получить фрагмент как в предыдущем состоянии, когда выбранные элементы будут в выбранном состоянии.

+0

Переопределите 'onSaveInstanceState' и/или' onPause', 'onResume' и сохраните соответствующие данные там. – Vucko

+0

Я думаю, это потому, что вы не сохраняете данные для выбранного элемента. Когда вы вернетесь, ваш фрагмент будет создан снова. Теперь, если вы не сохранили выбранный элемент. Он покажет вам значения по умолчанию или прошлые данные. – Dexter

ответ

0

Попробуйте использовать SaveInstanceState позволяет проверить один образец ниже

public class MainFragment extends Fragment { 

    // These variable are destroyed along with Activity 
    private int someVarA; 
    private String someVarB; 

    ... 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putInt("someVarA", someVarA); 
     outState.putString("someVarB", someVarB); 
    } 

    @Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     someVarA = savedInstanceState.getInt("someVarA"); 
     someVarB = savedInstanceState.getString("someVarB"); 
    } 

} 

Там нет onRestoreInstanceState метод внутри фрагмента. Для Фрагмента есть специальный случай, который отличается от Activity, и я думаю, что вам нужно знать об этом. После того, как Фрагмент будет возвращен из backstack, его Вид будет уничтожен и воссоздан.

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