一个项目可以在android中的RecyclerView中点击

时间:2018-03-17 11:08:04

标签: android android-studio android-recyclerview onitemselectedlistener

我正在研究某种教育游戏,在这个游戏中,我代表九个级别的recyclerview,每个级别在前一个级别启用,现在我正在尝试在回收器中创建一个项目查看启用,其他人无法,我一直在youtube和其他网站上搜索,我的问题是如何做到的?(注意:我是android studio中的新手,所以尽量保持简单)。

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);
    }
}

}

2 个答案:

答案 0 :(得分:1)

您可以通过

实现这一目标

在适配器类中添加这样的界面

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

初始化此界面

    private ItemClickListner clickManager;

添加Param Adapter类构造函数

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覆盖功能

中的

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

答案 1 :(得分:0)

此示例显示如何为onClick listener中的项目实施adapter,并获取所点击项目的位置。在这种情况下,我的目标是仅在Recyler-View可点击中制作第五个视图。

class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        private TextView headText , scoreText;

        public ViewHolder(View itemView) {
            super(itemView);

            headText = (TextView)itemView.findViewById(R.id.head);
            scoreText = (TextView)itemView.findViewById(R.id.score);
        }

   @Override
    public void onClick(View view) {

        if(getLayoutPosition()==5){
        //your code goes here...
        }
      }
    }