я создаю приложение, в котором, когда пользователь добавляет новые данные, появляется новая метка Я пробовал, и это сработало, но мне интересно, как я могу сделать json, который я храню в SharedPreferences не переписывайте поэтому я могу добавить 2 или более пользовательских json в адаптер
Вот мой файл строки ввода, переменная json содержит пользователя, который добавил
SharedPreferences sharedPreferences = getSharedPreferences("newUser", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("listNewUser",json)
editor.apply();
Вот как я могу получить json из общих настроек
try{
String listNewUserAdd = sh.getString("listNewUser","");
JSONObject object = new JSONObject(listNewUserAdd);
for (int i=0; i<object.length(); i++) {
CustomerNew customer = new CustomerNew();
customer.setCustomerName(object.getString("receiverName"));
customer.setAccountId(object.getString("customerReference"));
customer.setId(object.getLong("customerId"));
System.out.println("### GET CUSTOMER NAME "+customer.getCustomerName());
listSortNew.add(customer);
if (listSortNew == null) {
// if the array list is empty
// creating a new array list.
listSortNew = new ArrayList<>();
}
}
Я думаю, что есть два способа реализовать это. Один из способов — когда вы помещаете данные, вы должны проверить, существуют ли они.
SharedPreferences sharedPreferences = getSharedPreferences("newUser", MODE_PRIVATE);
String listNewUser = sharedPreferences.getString("listNewUser","");
if (!TextUtils.isEmpty(listNewUser)){
//covert it the list object
//then add the all new item to it
//finally convert it to json string
}
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("listNewUser",json)
editor.apply();
другой способ — изменить SharedPreferences
MODE_APPEND
but you must know, it doesn't mean that you add multiple values for each key. It means that if the file already exists it is appended to and not erased. We usually used MODE_PRIVATE
В конце я предлагаю вам сначала получить данные из него, затем проверить, нужны ли вам изменения, вы можете изменить данные, а затем сохранить их снова.
@Agam, потому что для того же ключа, когда вы вводите новые данные, они заменяют старые данные,
@Agam, поэтому я предлагаю вам сначала получить старые данные, затем проверить, существуют ли они, затем добавить новый элемент данных в данные старого списка, затем снова сохранить его, вы можете добавить еще 2 элемента
можете привести пример?
@Agam, я обновляю ответ и даю инструкции. вы можете это осознать.
Я правда не знаю как это сделать, но большое спасибо
@Agam, основная идея состоит в том, чтобы использовать список для сохранения информации о данных, а не объект.
спасибо, но я имею в виду, что каждый раз, когда я добавляю данные, значение json заменяется новыми добавленными данными