Сохранение списка данных, состоящих из отдельных кнопок

Я сделал список из TextViews и Buttons, сделал так, что, когда человек нажимает на кнопку, открывается фрагмент и появляется список значений, которые он может выбрать. Проблема в том, что когда я нажимаю на другую кнопку, чтобы снова выбрать значение для другого поля, предыдущее значение исчезает. Таким образом, вопрос заключается в том, как сохранить значения фрагментов и сохранить их, пока приложение не будет закрыто?

    priceButton.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View view) {
    PriceFragment priceFragment = new PriceFragment();
    getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContainer, priceFragment).commit();
    setToHideElements();
  }
});

yearButton.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View view) {
    YearFragment yearFragment = new YearFragment();
    getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContainer, yearFragment).commit();
    setToHideElements();

  }
});

это фрагмент года

    yearEndListView.setOnItemClickListener(new OnItemClickListener() {
  @Override
  public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
    Intent intent = new Intent(getActivity().getBaseContext(), MainMenuActivity.class);
    String yearTo = yearList[i].toString();
    int yearTint = Integer.valueOf(yearTo);

    if (combinedYear != null) {
      combinedYear = combinedYear + " " + yearTo;
      intent.putExtra("Years", combinedYear);
      getActivity().startActivity(intent);

    } else {
      combinedYear = null;
      combinedYear = yearTo;
    }


    }
});

это метод извлечения данных

  private void retriveDataFromFragment(){
Intent intent = getIntent();
String fragmentDataPrice = intent.getStringExtra("PriceData");
String fragmentDataYear = intent.getStringExtra("Years");

if(fragmentDataPrice != null){
  priceButton.setText(fragmentDataPrice);
} else {}
if (fragmentDataYear != null){
  yearButton.setText(fragmentDataYear);
} else {}


}

Я использую метод RetriveDataFromFragment в методе OnResume .

Спасибо, что уделили время.

0
задан Fantômas 20 March 2019 в 21:38
поделиться

1 ответ

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

0
ответ дан Happy Singh 20 March 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: