Я звоню по списку предметов из Firebase Firestore. и установить его в режиме рециркуляции. и я реализовал функциональность сохранения элемента в качестве избранного, сохраняя его положение в списке массивов общих настроек. Но проблема, с которой я столкнулся, состоит в следующем: предположим, что есть 5 пунктов в обзоре переработчиков. и мне понравились 3 его предмета. и я уничтожил свое приложение. когда я снова открываю свое приложение, мне нравится еще один элемент, а затем снова уничтожается мое приложение. после этого, когда я снова открываю свое приложение, появляется как только в прошлый раз, который мне понравился. Предыдущие 3 пункта понравились. Я не понимаю, почему это происходит. * Примечание: до сих пор я не добавлял функцию удаления лайков из списка предметов.
Ниже приведен мой логический код:
Общие настройки Модель
public class SharedPref {
SharedPreferences preferences;
SharedPreferences.Editor editor ;
public SharedPref(Context context) {
// TODO Auto-generated constructor stub
preferences =context.getSharedPreferences("Stackoverflow", Context.MODE_PRIVATE);
editor =preferences.edit();
}
public boolean putBoolean(String key, boolean value) {
editor.putBoolean(key, value);
return editor.commit();
}
public boolean getBoolean(String key) {
return preferences.getBoolean(key, false);
}
public boolean putString(String key, String value) {
editor.putString(key, value);
return editor.commit();
}
public String getString(String key) {
return preferences.getString(key, null);
}
public boolean putLong(String key, long value) {
editor.putLong(key, value);
return editor.commit();
}
public long getLong(String key) {
return preferences.getLong(key, 0);
}
public boolean putInt(String key, int value) {
editor.putInt(key, value);
return editor.commit();
}
public int getInt(String key) {
return preferences.getInt(key, 0);
}
public boolean putFloat(String key, float value) {
editor.putFloat(key, value);
return editor.commit();
}
public float getFloat(String key) {
return preferences.getFloat(key, 0);
}
public boolean remove(String key){
return editor.remove(key).commit();
}
public boolean clear() {
// TODO Auto-generated method stub
return editor.clear().commit();
}
public void putListString(String key, ArrayList<String> stringList) {
checkForNullKey(key);
String[] myStringList = stringList.toArray(new String[stringList.size()]);
preferences.edit().putString(key, TextUtils.join("‚‗‚", myStringList)).apply();
}
public void checkForNullKey(String key){
if (key == null){
throw new NullPointerException();
}
}
public ArrayList<String> getListString(String key) {
return new ArrayList<String>(Arrays.asList(TextUtils.split(preferences.getString(key, ""), "‚‗‚")));
}
}
Класс адаптера:
Boolean favimageclick=true;
SharedPref sharedPref;
ArrayList<String> favlist=new ArrayList<>();
if (sharedPref.getListString("fav")!=null)
{
Log.e("StoredData","______"+sharedPref.getListString("fav"));
for(String data:sharedPref.getListString("fav"))
{
if (data.equalsIgnoreCase(String.valueOf(position))) {
holder.imageViewFav.setBackgroundResource(R.drawable.ic_favorite);
}
}
}
holder.imageViewFav.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (favimageclick) {
holder.imageViewFav.setBackgroundResource(R.drawable.ic_favorite);
favlist.add(String.valueOf(position));
sharedPref.putListString("fav",favlist);
}
}
});