由于SharedPrefereces帮助我们存储持久数据,我在我的应用程序中使用它来存储少量数据(使用TinyDB),我觉得不需要使用SQLite。
< / p>
我正在做的是从用户那里获取一些价值并将其存储在ArrayList中。当用户退出应用程序或操作系统杀死应用程序并再次启动应用程序时,我希望在上面提到的相同ArrayList中添加新数据。
我不明白如何搜索它,但尝试在SO本身上找到this
虽然它没有解决我的问题所以决定问。
编辑:代码片
按钮点击左侧向arraylist添加元素
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
内容合并。
我是否需要通过覆盖来做某事onPause的活动状态?如果是,那怎么样?
谢谢你。
答案 0 :(得分:1)
当您在函数中将列表保存到数据库时,只需要在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
}