在每次访问应用程序

时间:2017-08-23 18:26:14

标签: java android arraylist sharedpreferences

由于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的活动状态?如果是,那怎么样?
谢谢你。

1 个答案:

答案 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
}