【发布时间】: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