要解决这个问题,你可以在应用关闭和打开时,清空ArrayList中的数据,然后重新加载RecyclerView的项。
在应用关闭时,你可以将ArrayList清空,并将数据保存到本地存储中(如SharedPreferences)。
// 在应用关闭时保存数据
@Override
protected void onStop() {
super.onStop();
saveDataToStorage();
}
private void saveDataToStorage() {
SharedPreferences sharedPreferences = getSharedPreferences("my_data", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
// 清空ArrayList
arrayList.clear();
// 将数据保存到SharedPreferences中
for (int i = 0; i < arrayList.size(); i++) {
editor.putString("item" + i, arrayList.get(i));
}
editor.apply();
}
在应用打开时,你可以从本地存储中读取数据,并添加到ArrayList中,然后更新RecyclerView。
// 在应用打开时加载数据
@Override
protected void onStart() {
super.onStart();
loadDataFromStorage();
}
private void loadDataFromStorage() {
SharedPreferences sharedPreferences = getSharedPreferences("my_data", Context.MODE_PRIVATE);
int size = sharedPreferences.getInt("size", 0);
// 清空ArrayList
arrayList.clear();
// 从SharedPreferences中读取数据并添加到ArrayList中
for (int i = 0; i < size; i++) {
String item = sharedPreferences.getString("item" + i, "");
arrayList.add(item);
}
// 更新RecyclerView
adapter.notifyDataSetChanged();
}
这样,在应用关闭和打开后,最后编辑的RecyclerView项就不会重复了。