に保存ArrayLists
しSharedPreferences
てonPause
いMainActivity
ます。私は次のようにこれを行います:
TinyDB tinyDB = new TinyDB(activity);
ArrayList<Object> saveUserList = new ArrayList<>();
for (User user : UsersArrayList.getInstance().getUsersList()) {
saveUserList.add(user);
}
tinyDB.putListObject("userList", saveUserList);
onCreateView
次のように my で更新を呼び出します。
TinyDB tinyDB = new TinyDB(activity);
ArrayList<User> userList = new ArrayList<>();
for (Object object : tinyDB.getListObject("userList", User.class)) {
userList.add((User) object);
}
for (User user : userList) {
if (!UsersArrayList.getInstance().getUsersList().contains(user)) {
UsersArrayList.getInstance().getUsersList().add(user);
}
}
ただし、.contains(user)
常に false を返し、同じオブジェクトを配列に追加し続けます。そして、そこにない1回だけ追加してほしいです。ここで contains 演算子が正しく機能しないのはなぜですか?
ArrayList
日付を保存して更新したいクラスは次のとおりです。
public class UsersArrayList {
public ArrayList<User> usersList;
private UsersArrayList() {
usersList = new ArrayList<User>();
}
public ArrayList<User> getUsersList() {
return usersList;
}
private static UsersArrayList instance;
public static UsersArrayList getInstance() {
if (instance == null) instance = new UsersArrayList();
return instance;
}
}