Вы используете неправильный способ удаления объекта
artikullObject.remove(artikulli);
Приведенный выше метод удалит тот же объект из списка, но, когда вы проанализировали список из Gson, будет подготовлен новый список, и все объекты будут иметь разные объекты.
Как вы можете удалить этот объект?
Если у вас есть какой-либо уникальный идентификатор объекта, получите его индекс, повторяя l oop, затем удалите объект с этим индексом из списка.
Например, ваш класс Artikujt такой:
class Artikujt{
String uId;
// other data members..
}
// L oop ваш список, проверьте индекс элемента удалить
holder.removeProduct.setOnClickListener(v -> {
SharedPreferences preferences = mContext.getSharedPreferences(ITEMS_PREF, Context.MODE_PRIVATE);
SharedPreferences.Editor mEditor = preferences.edit();
Gson gson = new Gson();
String json = preferences.getString("artikujtShporta", "");
ArrayList<Artikujt> artikullObject = gson
.fromJson(json, new TypeToken<ArrayList<Artikujt>>(){}.getType());
if (artikullObject != null) {
int indexToRemove = -1
for(int i=0 ; i<artikullObject.size(); i++){
if(artikullObject.get(i).uid.equals(artikulli.uid)){
indexToRemove = i;
break;
}
}
if(i!=-1){
artikullObject.remove(indexToRemove);
}
String jsonString = gson.toJson(artikullObject);
mEditor.putString("artikujtShporta", jsonString);
mEditor.apply();
}
});