我正在从存储的 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;
}