【问题标题】:Saving list data composed of individual buttons保存由单个按钮组成的列表数据
【发布时间】:2019-03-20 19:57:26
【问题描述】:

我制作了一个由 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 {}


}

我在OnResume方法中使用RetriveDataFromFragment方法。

感谢您的宝贵时间。

【问题讨论】:

  • 您可能想要添加代码,以便人们知道您在做什么,因此他们可以知道他们必须更改哪些内容才能使您的代码有效如您所愿(即不会丢失以前的值);)
  • 谢谢你,我忘了这样做.. :D

标签: android saving-data


【解决方案1】:

您每次都在启动一个新片段,因此它永远不会保留其状态。您必须在关闭片段时使用侦听器,以便取回数据。

【讨论】:

  • 我认为您误解了,因为我没有提供代码。我通过侦听器从片段中获取数据,但是一旦我打开另一个片段,设置为上一个按钮的数据就会消失
【解决方案2】:

如果其他人需要类似的菜单,我得到了答案,您所要做的就是创建一个扩展 Application 的类,并将其包含到您的清单中(带有应用程序标签的部分)。从那里你只需使用 getter 和 setter,一切都很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多