您可以通過在單個字符串中添加多個收藏夾來保存多個收藏夾,每個收藏夾項以逗號分隔。然後您可以使用convertStringToArray
方法將其轉換爲字符串數組。這裏是完整的源代碼。
使用MyUtility方法保存多個收藏夾項目。
MyUtility.addFavoriteItem(this, "Sports");
MyUtility.addFavoriteItem(this, "Entertainment");
得到所有收藏的字符串數組保存
String[] favorites = MyUtility.getFavoriteList(this);// returns {"Sports","Entertainment"};
在單獨的實用工具類
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
。
*您可以使用任何其他字符串作爲分隔符而不是逗號。
非常感謝。但我還不知道編程的內容。這裏是字符串形式SharedPreferences:' dict_name :: 149272 :: go, '。你的代碼應該放在哪裏? –
2012-01-29 15:47:17
@ user998032我已經添加了代碼來解釋我們如何添加多個最喜歡的項目。您可以按原樣使用代碼,它可以爲您工作。 – 2012-01-29 16:02:04
@@ Muhammad Nabeel Arif:非常感謝,但仍然沒有運氣,對不起!我想要在onClick之後保存最愛,但在上述編輯後的代碼後會產生許多錯誤。 – 2012-01-29 17:04:50