android– 如何使用SharedPreferences保存多个值?

android– 如何使用SharedPreferences保存多个值?,第1张

概述我正在开发一个字典应用程序.在我的应用程序中,我假设用户想要保存喜欢的单词.我决定使用SharedPreferences来保存这些值(我知道SQLite和文件更好但我坚持使用“SharedPreferences”,所以继续使用它).以下是我的代码:@OverridepublicvoidonClick(Viewv){

我正在开发一个字典应用程序.在我的应用程序中,我假设用户想要保存喜欢的单词.我决定使用SharedPreferences来保存这些值(我知道sqlite和文件更好但我坚持使用“SharedPreferences”,所以继续使用它).

以下是我的代码:

@OverrIDepublic voID onClick(VIEw v) {                                           SharedPreferences faves = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());    {         SharedPreferences.Editor editor = faves.edit();        editor.putString("favourite", mSelectedDB + "::" + mCurrentWordID + "::" + mCurrentWord + ",");        editor.commit();        }    Log.i(CONTENT_TAG,"Favourite saved!");    Toast toast = Toast.makeText(ContentVIEw.this, R.string.messageWordAddedToFarvourite, Toast.LENGTH_SHORT);    toast.show();   }

问题是它不会保留多个最喜欢的单词.我的意思是只保存了一个最喜欢的单词,当添加新单词时,前一个单词被删除.

那么,如何编辑上面的代码以便解决这个问题呢?

你们有帮助吗?非常感谢你.

解决方法:

通过在单个字符串中添加多个收藏夹,您可以在一个首选项中保存多个收藏夹,每个收藏夹项目用逗号分隔.然后,您可以使用convertStringToArray方法将其转换为String Array.这是完整的源代码.
使用MyUtility Methods保存多个喜欢的项目.

            MyUtility.addFavoriteItem(this, "Sports");            MyUtility.addFavoriteItem(this, "Entertainment");

获取保存的所有收藏夹的String数组

String[] favorites = MyUtility.getFavoriteList(this);// returns {"Sports","Entertainment"};

将这些方法保存在单独的Utility类中

 public abstract class MyUtility {    public static boolean addFavoriteItem(Activity activity,String favoriteItem){        //Get prevIoUs favorite items        String favoriteList = getStringFromPreferences(activity,null,"favorites");        // Append new Favorite item        if(favoriteList!=null){            favoriteList = favoriteList+","+favoriteItem;        }else{            favoriteList = favoriteItem;        }        // Save in Shared Preferences        return putStringInPreferences(activity,favoriteList,"favorites");    }    public static String[] getFavoriteList(Activity activity){        String favoriteList = getStringFromPreferences(activity,null,"favorites");        return convertStringToArray(favoriteList);    }    private static 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;            }    private static String getStringFromPreferences(Activity activity,String defaultValue,String key){        SharedPreferences sharedPreferences = activity.getPreferences(Activity.MODE_PRIVATE);        String temp = sharedPreferences.getString(key, defaultValue);        return temp;            }    private static String[] convertStringToArray(String str){        String[] arr = str.split(",");        return arr;    }}

如果你必须添加额外的收藏夹.然后从SharedPreference获取最喜欢的字符串并附加逗号最喜欢的项目并将其保存回SharedPreference.
*您可以使用任何其他字符串作为分隔符而不是逗号.

总结

以上是内存溢出为你收集整理的android – 如何使用SharedPreferences保存多个值?全部内容,希望文章能够帮你解决android – 如何使用SharedPreferences保存多个值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1103207.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存