Как сохранить значение TextView которая находится в адаптере с помощью SharedPreferences
В общем у меня есть счетчик + и -, значение записывается в TextView foodCount, нужно его сохранить чтоб оно не сбрасывалось при закрытии приложения, проблема в том что TextView находится в адаптере а SharedPreferences работает в активити, как мне сохранять значение в таком случае??
код адаптера:
public class FoodAdapter extends RecyclerView.Adapter<FoodAdapter.FoodViewHolder> { List foodList;
public FoodAdapter(List<Food> foodList) {
this.foodList = foodList;
}
@NonNull
@Override
public FoodAdapter.FoodViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_food, parent, false);
return new FoodViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull FoodAdapter.FoodViewHolder holder, int position) {
holder.foodTitle.setText(foodList.get(position).getName());
holder.foodDescription.setText(foodList.get(position).getDescription());
holder.foodPrice.setText(String.valueOf(foodList.get(position).getPrice() + " ₽"));
Glide.with(holder.foodImage)
.load(foodList.get(position).getImageApp())
.into(holder.foodImage);
}
@Override
public long getItemId(int position) {
return foodList.get(position).getId();
}
@Override
public int getItemCount() {
return foodList.size();
}
public static class FoodViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private ImageView foodImage;
private TextView foodTitle;
private TextView foodDescription;
private TextView foodPrice;
private TextView foodCount;
private Button addFoodBtn;
private Button deleteFoodBtn;
private int count;
public FoodViewHolder(@NonNull View itemView) {
super(itemView);
foodImage = itemView.findViewById(R.id.ImageView_foodImage);
foodTitle = itemView.findViewById(R.id.TextView_foodTitle);
foodDescription = itemView.findViewById(R.id.TextView_foodDescription);
foodPrice = itemView.findViewById(R.id.TextView_foodPrice);
foodCount = itemView.findViewById(R.id.TextView_foodCount);
addFoodBtn = itemView.findViewById(R.id.Button_addFood);
deleteFoodBtn = itemView.findViewById(R.id.Button_deleteFood);
addFoodBtn.setOnClickListener(this);
deleteFoodBtn.setOnClickListener(this);
initCounter();
}
@Override
public void onClick(View itemView) {
switch (itemView.getId()) {
case R.id.Button_deleteFood:
deleteCounter();
break;
case R.id.Button_addFood:
addCounter();
break;
}
if (count <= 0) {
deleteFoodBtn.setVisibility(View.INVISIBLE);
foodCount.setVisibility(View.INVISIBLE);
} else {
deleteFoodBtn.setVisibility(View.VISIBLE);
foodCount.setVisibility(View.VISIBLE);
}
}
private void initCounter() {
count = 0;
foodCount.setText(count + "");
}
private void addCounter() {
count++;
foodCount.setText(count + "");
}
private void deleteCounter() {
count--;
foodCount.setText(count + "");
}
}
}