在Android的RecyclerView中可点击的一项 [英] one item clickable in RecyclerView in android

查看:293
本文介绍了在Android的RecyclerView中可点击的一项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发某种教育游戏,在此游戏中,我在recyclerview中代表九个级别,当上一个级别启用时,每个级别均已启用,现在我正尝试在回收者视图"中启用一个项目,而其他项目则无法启用,我一直在youtube和其他网站中搜索,我的问题是怎么做?(注意:我是android studio中的新手,因此请尽可能简化操作.)

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

在适配器类中添加这样的接口

 public interface ItemClickListner{
    void onItemClick(ItemView item);
}

初始化此界面

    private ItemClickListner clickManager;

添加参数适配器类构造器

public ListAdapter(List<ItemView> items , Context context,ItemClickListner clickManager){
this.items = items;
this.context = context;
this.clickManager=clickManager;
}

在您的ViewHolder中为itemView添加一个OnClickListner

itemView.setOnClickListener(this);

您的onClick覆盖功能中的

in Your onClick override function

if(clickManager!=null)
    clickManager.onItemClick(items.get(getAdapterPosition()));

这篇关于在Android的RecyclerView中可点击的一项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆