Android 从共享首选项检索数据

Android 从共享首选项检索数据,android,android-sharedpreferences,Android,Android Sharedpreferences,在我设计的计算器中的“相等”按钮上,我将数据存储到共享偏好中,以便像这样备份历史记录 historyList.add(calcInput.getText().toString()+" = "+calcOutput.getText().toString()); stringBuilder = new StringBuilder(); for (String s : historyList){ stringBuilder.append(s); stringBu

在我设计的计算器中的“相等”按钮上,我将数据存储到共享偏好中,以便像这样备份历史记录

historyList.add(calcInput.getText().toString()+"  =  "+calcOutput.getText().toString());

stringBuilder = new StringBuilder();
for (String s : historyList){

        stringBuilder.append(s);
        stringBuilder.append(",");

}

editor.putString("hist", stringBuilder.toString());
editor.apply();
然后通过点击按钮来检索这样的数据

historyString = setting.getString("hist", null);
historyAdaptorArray = historyString.split(",");
adapter = new ArrayAdapter<String>(getActivity(),
        R.layout.support_simple_spinner_dropdown_item, historyAdaptorArray);
listView.setAdapter(adapter);
historyString=setting.getString(“hist”,null);
HistoryAdapterArray=historyString.split(“,”);
适配器=新的ArrayAdapter(getActivity(),
R.layout.support\u simple\u spinner\u dropdown\u项目,historyAdapterArray);
setAdapter(适配器);
现在我的问题是,每次我加载应用程序时,当新值添加到SharedReference时,以前的历史数据就消失了。
在我清除之前,我应该如何使数据始终可用?

如果要附加数据,请像这样使用它

editor.putString("hist", setting.getString("hist", null)+   
stringBuilder.toString());
editor.apply();
这将获取以前的SharedReference值,并在其上附加新的字符串生成器值


希望有帮助:)

您在共享Pref中备份了什么?这不是个好主意。如果用户重新安装应用程序,则会重新启动缓存,所有内容都将消失。使用Firebase或Parse服务器不,我不想永远存储。你能就上面列出的问题给我指点一下吗?:)您能否发布加载和保存SharedReference历史数据的代码?这是一个更好的教程,展示了保存(put)和获取(get)