Skip to content

Instantly share code, notes, and snippets.

@e4basil
Created January 18, 2019 12:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save e4basil/a9027ccc400486ef45879dd96e5cadad to your computer and use it in GitHub Desktop.
Save e4basil/a9027ccc400486ef45879dd96e5cadad to your computer and use it in GitHub Desktop.
Test
public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> {
private List<Model> items = new ArrayList<>();
SparseBooleanArray itemStateArray= new SparseBooleanArray();
Adapter() {
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
Context context = parent.getContext();
int layoutForItem = R.layout.list_item;
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(layoutForItem, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.bind(position);
}
@Override
public int getItemCount() {
if (items == null) {
return 0;
}
return items.size();
}
void loadItems(List<Model> tournaments) {
this.items = tournaments;
notifyDataSetChanged();
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
CheckedTextView mCheckedTextView;
ViewHolder(View itemView) {
super(itemView);
mCheckedTextView = (CheckedTextView) itemView.findViewById(R.id.checked_text_view);
itemView.setOnClickListener(this);
}
void bind(int position) {
// use the sparse boolean array to check
if (!itemStateArray.get(position, false)) {
mCheckedTextView.setChecked(false);}
else {
mCheckedTextView.setChecked(true);
}
mCheckedTextView.setText(String.valueOf(items.get(position).getPosition()));
}
@Override
public void onClick(View v) {
int adapterPosition = getAdapterPosition();
if (!itemStateArray.get(adapterPosition, false)) {
mCheckedTextView.setChecked(true);
itemStateArray.put(adapterPosition, true);
}
else {
mCheckedTextView.setChecked(false);
itemStateArray.put(adapterPosition, false);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment