У меня есть список состояний флажков, как я могу использовать метод setChecked, чтобы установить флажки, когда приложение снова открывается? Должен ли я сделать интерфейс или использовать что-то еще? Я делаю это, чтобы сохранить состояния флажков после закрытия ... Заранее спасибо.
Это адаптер:
public class RecyclerViewActiveAdapter extends RecyclerView.Adapter<RecyclerViewActiveAdapter.RecyclerViewHolder> {
private List<ProizvodItem> mLista;
private OnCheckBoxChangedListener mCheck;
public interface OnCheckBoxChangedListener{
void onCheckBoxChanged(int position,boolean isChecked);
}
public void setOnCheckBoxChangedListener(OnCheckBoxChangedListener check){
mCheck=check;
}
public static class RecyclerViewHolder extends RecyclerView.ViewHolder{
public TextView textViewIme;
public TextView textViewCena;
public CheckBox checkBox;
public RecyclerViewHolder(@NonNull View itemView,final OnCheckBoxChangedListener check) {
super(itemView);
textViewIme = itemView.findViewById(R.id.cardViewImeActive);
textViewCena = itemView.findViewById(R.id.cardViewCenaActive);
checkBox = itemView.findViewById(R.id.cardViewCheckActive);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(check!=null) {
int position = getAdapterPosition();
if(position!=RecyclerView.NO_POSITION) {
check.onCheckBoxChanged(position,isChecked);
}
}
}
});
}
}
public RecyclerViewActiveAdapter(List<ProizvodItem> Lista){
mLista = Lista;
}
@NonNull
@Override
public RecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_active, parent, false);
RecyclerViewHolder rvh = new RecyclerViewHolder(v,mCheck);
return rvh;
}
@Override
public void onBindViewHolder(final RecyclerViewHolder holder, final int position) {
final ProizvodItem currentItem = mLista.get(position);
holder.textViewIme.setText(currentItem.getImeProizvoda());
holder.textViewCena.setText(String.valueOf(currentItem.getCenaProizvoda()));
}