由于 SharedPrefereces 帮助我们存储持久数据,我在应用程序中使用它来存储少量数据(使用 TinyDB ),而我认为不需要使用 SQLite。
我正在做的是从用户那里获取一些值并将其存储在 ArrayList 中。当用户退出应用程序或操作系统终止应用程序并再次启动应用程序时,我希望将新数据添加到上述同一 ArrayList 中。
我不明白如何搜索它,但尝试发现 this就 SO 本身而言。
虽然它没有解决我的问题,所以决定询问。
编辑:代码 fragment
单击按钮时将元素添加到数组列表
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
place = et.getText().toString();
if(place.length()!=0){
Toast.makeText(getBaseContext(), place + " is scanned.", Toast.LENGTH_SHORT).show();
placeArray.add(place);
CalculateLatLong();
}
else{
Toast.makeText(getBaseContext(),"Enter place to search.", Toast.LENGTH_SHORT).show();
}
}
});
在CalculateLatLong()中
...
TinyDB tinydb = new TinyDB(this);
tinydb.putListString("locationName", placeArray);
...
我想将 placeArray
添加到 locationName
由于 placeArray
在每次应用程序终止时都会初始化为 null,因此每次它都是一个新列表,我想将其与 locationName
内容合并。
我这样做吗需要通过覆盖 Activity 的 onPause 状态来执行某些操作吗?如果是的话怎么办?
谢谢。
最佳答案
当您在函数中将列表保存到数据库时,您只需在 onResume
方法中添加代码。您需要填充 placeArray
:
void onResume(){
super.onResume();
TinyDB tinydb = new TinyDB(getContext());
placeArray = tinydb.getListString("locationName"); // This will either return saved list (if saved), or empty list
}
关于java - 在每次访问应用程序时使用 SharedPreferences 将数据附加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45846964/