У меня есть recyclerView, и у меня есть около 5 карточек с кнопками-переключателями на каждом из них, поэтому, когда я нажимаю на них, они отлично работают, скажем (вкл., выкл.), но проблема в том, что когда я перезапускаю приложение, эти кнопки-переключатели, которые я решил включить отключается, я пробовал с sharedpereference, но это не сработало, так что вот мой код, может кто-нибудь помочь, и спасибо
public class MyAdapter extends RecyclerView.Adapter<MyHolder>{
Context c;
String[] players;
String[] positions;
int[] images;
public MyAdapter(Context ctx,String[] players,String[] positions,int[] images)
{
this.c=ctx;
this.players=players;
this.positions=positions;
this.images=images;
}
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.model,null);
MyHolder holder=new MyHolder(v);
SharedPreferences sharedPrefs = c.getSharedPreferences("com.example.xyz", MODE_PRIVATE);
holder.fav.setChecked(sharedPrefs.getBoolean("NameOfThingToSave", true));
return holder;
}
@Override
public void onBindViewHolder(final MyHolder holder, final int position) {
holder.nameTxt.setText(players[position]);
holder.posTxt.setText(positions[position]);
holder.img.setImageResource(images[position]);
// holder.fav.setChecked(false);
// holder.fav.setBackgroundDrawable(ContextCompat.getDrawable(c, R.drawable.star_off));
holder.fav.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (holder.fav.isChecked())
{
SharedPreferences.Editor editor = c.getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
editor.putBoolean("NameOfThingToSave", true);
editor.commit();
}
else
{
SharedPreferences.Editor editor = c.getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit();
editor.putBoolean("NameOfThingToSave", false);
editor.commit();
}
if (isChecked)
holder.fav.setBackgroundDrawable(ContextCompat.getDrawable(c,R.drawable.star_light));
else
holder.fav.setBackgroundDrawable(ContextCompat.getDrawable(c, R.drawable.star_off));
}
});
holder.setItemClickListener(new ItemClickListener() {
@Override
public void onItemClick(View v, int pos) {
Intent i=new Intent(c,DetailActivity.class);
i.putExtra("Name",players[position]);
i.putExtra("Position",positions[position]);
i.putExtra("Image",images[position]);
c.startActivity(i);
}
});
}
@Override
public int getItemCount() {
return players.length;
}