Сохранение списка данных, состоящих из отдельных кнопок - PullRequest
0 голосов
/ 20 марта 2019

Я сделал список из 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.

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

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Я получил ответ, если кому-то еще нужно подобное меню, все, что вам нужно сделать, это создать класс, расширяющий Application, и включить в ваш манифест (часть с тегами приложения). Оттуда вы просто используете геттеры и сеттеры, и все хорошо.

0 голосов
/ 20 марта 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...