我希望在一個活動中將字符串放入sharedpreferences中,然後在另一個活動中,我得到這些字符串,並將它們放入數組中並按順序顯示它們。我設法做到這一點,但我沒有任何想法如何在被問到時如何刪除一個指定的字符串。這些字符串將被分散在共享偏好上,我不知道如何跟蹤它們。我可以將這個唯一的int id傳遞給每個元素。我試圖使用LinkedList,但我無法將這種結構作爲共享偏好進行傳遞。我還沒有設法讓Gson工作。請幫忙。傳遞字符串以使用共享首選項列出並刪除它們
方法得到的字符串,並穿上共享偏好:
public void makefavorites(String[] a, String[] b, int id)
{
int idfinal = id%10;
idfinal = idfinal+1;
a[idfinal] = b[idfinal] +"\n" + "\n"+ a[idfinal];
SharedPreferences prefs = getSharedPreferences("Favorites", Activity.MODE_PRIVATE);
Editor edit = prefs.edit();
int temp = prefs.getInt("favorites_size", 0);
edit.putInt("favorites_size", temp+1);
edit.putString("array_" + prefs.getInt("favorites_size", 0), a[idfinal]);
edit.commit();
refreshfavorites();
}
方法能使那些字符串,穿上陣列並顯示:
public void refreshfavorites()
{
SharedPreferences prefs = getSharedPreferences("Favorites", Activity.MODE_PRIVATE);
//GETS THE ARRAY SIZE
int size = prefs.getInt("favorites_size", 0);
String[] array = new String[size];
for(int i=0; i<size; i++){
array[i] = prefs.getString("array_" + i, null);
}
}
爲什麼不使用'SharedPreferences.Editor#putStringSet()'http://developer.android.com/reference/android/content/SharedPreferences.Editor.html? –
但這將如何幫助我跟蹤元素? –
因爲您可以在共享首選項中存儲'Set'。如果你需要刪除一個元素,你可以調用'Set#remove()',然後存儲更新後的集合。 –