Java 如何将一个onClickListener应用于多个ViewHolder

Java 如何将一个onClickListener应用于多个ViewHolder,java,android,inheritance,android-viewholder,Java,Android,Inheritance,Android Viewholder,所以我有了viewholder的标题和描述,点击它们也会做同样的事情。setOnClickListener方法在此方法中定义: @Override public void onBindViewHolder(final RecycleViewAdapter.ViewHolder holder, int position) { holder.title.setOnClickListener(new View.OnClickListener(){ // does A }

所以我有了viewholder的标题和描述,点击它们也会做同样的事情。setOnClickListener方法在此方法中定义:

@Override
public void onBindViewHolder(final RecycleViewAdapter.ViewHolder holder, int position) {
    holder.title.setOnClickListener(new View.OnClickListener(){
        // does A
    });
    holder.description.setOnClickListener(new View.OnClickListener() {
        // does A
    });
}

除了从抽象类扩展之外,还有其他方法吗?

不要在onBindViewHolder方法中编写OnClickListner,因为每次滚动列表时都会调用它

您必须在viewholder类中完成

public class CustomViewHolder extends RecyclerView.ViewHolder {


        TextView tv_desc, tv_title;

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

            tv_desc = (TextView) itemView.findViewById(R.id.tv_desc);
            tv_title = (TextView) itemView.findViewById(R.id.tv_title);
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

            //your code of on click
                }
            });
        }
    }

为您的视图创建一个容器,作为holder的一部分,并在不创建新视图的视图上应用click listener。OnClickListener只需在CustomViewHolder类中实现View.OnClickListener接口