i'm working on some kind of educational game, in this game i represent nine levels in recyclerview each level is enabled when the previous one, now i'm trying to make one item in the recycler View enable and the others unable, i been searching in youtube , and other websites, my question is how to do it?(note: i'm new in android studio so keep it simple as possible).
public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> {
private List<ItemView> items;
private Context context;
public ListAdapter(List<ItemView> items , Context context){
this.items = items;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_list , parent , false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
ItemView i = items.get(position);
holder.setHeadText(i.getHead());
holder.setScoreText(i.getScore());
}
@Override
public int getItemCount() {
return items.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
private TextView headText , scoreText;
public ViewHolder(View itemView) {
super(itemView);
headText = (TextView)itemView.findViewById(R.id.head);
scoreText = (TextView)itemView.findViewById(R.id.score);
}
public void setHeadText(String headText) {
this.headText.setText(headText);
}
public void setScoreText(String scoreText) {
this.scoreText.setText(scoreText);
}
}
}
You can achieve this by
Add a interface like this in your adapter class
public interface ItemClickListner{
void onItemClick(ItemView item);
}
Initialize this Interface
private ItemClickListner clickManager;
Add a Param Adapter class constructor
public ListAdapter(List<ItemView> items , Context context,ItemClickListner clickManager){
this.items = items;
this.context = context;
this.clickManager=clickManager;
}
In Your ViewHolder Add a OnClickListner for itemView
itemView.setOnClickListener(this);
in Your onClick
override function
if(clickManager!=null)
clickManager.onItemClick(items.get(getAdapterPosition()));