gpt4 book ai didi

android - 从 SharedPreferences 中删除条目 - Android

转载 作者:行者123 更新时间:2023-11-29 21:37:06 24 4
gpt4 key购买 nike

我正在从存储的 SharedPreferences 创建一个数组。下面的代码采用最近的五个并创建一个数组(因此我可以使用它)。问题是我的 editor.remove 语句没有删除 Shared 条目,而是只是将其设置为 null。我无法创建最近的 5 个条目。如果列表大于 5,如何删除第一个条目并在末尾添加一个新条目? (这有点像最近保存的搜索列表)。

我知道另一种方法是使用 JSON。你能举个例子吗?谢谢。

public boolean savedIPsArray(String oneTimeData, String key, Context mContext) {   
SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);

int size = prefs.getInt(key+"_size", 0);

SharedPreferences.Editor editor = prefs.edit();

if(size < 5){
editor.putString(key+ "_" + size, oneTimeData);
editor.putInt(key+"_size", ++size);
}
else{
editor.remove(key+ "_" + 0).commit();
editor.putString(key+ "_" + (size-1), oneTimeData);
editor.putInt(key+"_size", size);
}

return editor.commit();
}

public String[] loadedIPsArray(String key, Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);
int size = prefs.getInt(key+ "_size", 0);
array = new String[size];
for(int i=0;i<size;i++) {
array[i] = prefs.getString(key+ "_" + i, null);
}
return array;
}

最佳答案

看起来您需要将其中一些 int 转换为 String:

if(size < 5){
editor.putString(key+ "_" + String.valueOf(size), oneTimeData);
editor.putInt(key+"_size", ++size);
}
else{
editor.remove(key+ "_" + String.valueOf(0)).commit();
editor.putString(key+ "_" + String.valueOf(size-1), oneTimeData);
editor.putInt(key+"_size", size);
}

关于android - 从 SharedPreferences 中删除条目 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18188003/

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