如何使用SharedPreference在Android中保存和删除多个String []数据?

时间:2014-12-24 01:37:39

标签: java android

我是Android开发的新手,如果我能在这里得到一些帮助,我会很高兴。 我现在遇到的问题是关于android中的SharedPreference。我想做的是

  • 我想将ArrayList字符串保存到Shared首选项中,并使用逗号(123,23,56)继续附加到现有的共享首选项数据。
  • 我想从中删除所选的字符串数据 sharedpreference。

目前,我尝试保存字符串数据并附加到单个共享首选项,如下面的示例

        public  String[] getStringList(Activity activity){
            String favoriteList = getStringFromPreferences(activity,null,"favorites");
            return convertStringToArray(favoriteList);
        }
        public  boolean putStringInPreferences(Activity activity,String nick,String key){
            SharedPreferences sharedPreferences = activity.getPreferences(Activity.MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPreferences.edit();
            editor.putString(key, nick);
            editor.commit();
            return true;
        }
        public String getStringFromPreferences(Activity activity,String defaultValue,String key){
            SharedPreferences sharedPreferences = activity.getPreferences(Activity.MODE_PRIVATE);
            String temp = sharedPreferences.getString(key, defaultValue);
            return temp;
        }


        @SuppressLint("CommitPrefEdits")
        public void remover(Activity activity){
            SharedPreferences sharedPreferences = activity.getPreferences(Activity.MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPreferences.edit();
              editor.remove();
            //editor.clear();

            editor.commit();
            mainSwitch = false;
        }


        //method to convert string into array 
        private  String[] convertStringToArray(String str){
            String[] arr = str.split(",");
            return arr;
        }

我只想删除部分字符串数据,但是,示例中的方法remover()将删除Sharedpreference中的所有数据,所以我想知道如何才能删除所选数据的一部分?或者有更好的方法使用数组保存和操作数据吗?

1 个答案:

答案 0 :(得分:0)

根据此代码,您将从sharedPreferences中删除所有字段 在卸妆中你需要获取字符串并用适当的值替换它。

SharedPreferences sharedPreferences = activity.getPreferences(Activity.MODE_PRIVATE);
String str = sharedPreferences.getString("myString");
str = str.replace("string to remove", "");

SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("myString", str);
editor.commit();