我正在开发一个字典应用程序.在我的应用程序中,我假设用户想要保存喜欢的单词.我决定使用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保存多个值?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)