gpt4 book ai didi

android - 使用共享首选项将字符串传递给列表并删除它们

转载 作者:行者123 更新时间:2023-11-30 03:04:50 26 4
gpt4 key购买 nike

我希望在一个 Activity 中将字符串放入共享首选项中,然后在另一个 Activity 中,我获取这些字符串,将它们放入一个数组中并按顺序显示它们。我设法做到了这一点,但我不知道如何在被询问时删除一个指定的字符串。这些字符串将散布在共享首选项中,我不知道如何跟踪它们。我可以将这个唯一的 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);
}
}

最佳答案

您必须使用editor.remove 方法从arraylist 中删除特定值..

public void removeArray(String[] list)()
{
SharedPreferences.Editor editor = mSharedPrefs.edit();

int size = list.length();

for (int i = 0; i < size; i++) {
editor.remove("favorites_size"+i);
}
editor.commit();
}

希望对你有用..

关于android - 使用共享首选项将字符串传递给列表并删除它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com