Я новичок в программировании и у меня проблема. Я не хочу сохранять Integer clicks
с sharedPreferences, чтобы я мог сохранить состояние своей кнопки mButton
, но я не могу этого сделать. Так что, возможно, вы, ребята, могли бы помочь мне. Я знаю, что это много, но я действительно начинаю впадать в отчаяние.
Вот мой код. Я также пытаюсь назначить общие префы внутри класса RecyclerView.Adapter.
public class ExampleAdapter extends
RecyclerView.Adapter<ExampleAdapter.ExampleViewHolder> {
private ArrayList<MyItem> mExampleList;
Context mContext;
SharedPreferences sharedPreferences;
private Button mButton;
private int clicks = 0;
public static class ExampleViewHolder extends RecyclerView.ViewHolder {
private TextView mTextView;
public ExampleViewHolder(View itemView) {
super(itemView);
mTextView = itemView.findViewById(R.id.tv_country);
}
}
public ExampleAdapter(ArrayList<MyItem> exampleList, Context context) {
mContext = context;
mExampleList = exampleList;
}
@Override
public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v =
LayoutInflater.from(parent.getContext()).inflate(R.layout.example_item,
parent,
false);
ExampleViewHolder evh = new ExampleViewHolder(v);
mButton = v.findViewById(R.id.tv_button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clicks=clicks+1;
int previousclicks=sharedPreferences.getInt("totalclick",0);
if (clicks % 2 == 0)
mButton.setBackgroundResource(R.drawable.button_green);
else
mButton.setBackgroundResource(R.drawable.button_red);
}
});
return evh;
}
@Override
public void onBindViewHolder(ExampleViewHolder holder, int position) {
MyItem currentItem = mExampleList.get(position);
holder.mTextView.setText(currentItem.getTaskText());
sharedPreferences =
mContext.getSharedPreferences("click_sharedpreference",Context.MODE_PRIVATE);
}
@Override
public int getItemCount() {
return mExampleList.size();
}
}