我有一个用于recyclerview的适配器类:

public abstract class RecyclerViewArrayAdapter<T, VH extends RecyclerView.ViewHolder>
        extends RecyclerView.Adapter<VH> {

        ...
  }

我正在创建这样的对象:
  new RecyclerViewArrayAdapter<String, ListImageItemViewHolder>(emailAddresses) {
            @Override
            public ListImageItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
                return new ListImageItemViewHolder(v);
            }

            @Override
            public void onBindViewHolder(ListImageItemViewHolder holder, int position) {


                holder.setClickListener(new ListImageItemViewHolder.ClickListener() {
                    @Override
                    public void onClick(View v, int position, boolean isLongClick) {


                    }
                });
            }
        };

ListImageitemViewHolder定义如下:
public class ListImageItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {

    private ClickListener clickListener;


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

        itemView.setOnClickListener(this);
        itemView.setOnLongClickListener(this);
    }

    public interface ClickListener {
        void onClick(View v, int position, boolean isLongClick);
    }


   public void setClickListener(ClickListener clickListener) {
        this.clickListener = clickListener;
    }
  }

一切看起来都很好,没有红色的标记,但是一旦我编译了下面的一行代码,就会出现n个错误;
错误:(147,68)错误:找不到符号类ClickListener
就像147是:
holder.setClickListener(new ListImageItemViewHolder.ClickListener() {
                    @Override
                    public void onClick(View v, int position, boolean isLongClick) {


                    }
                });

问题:为什么无法访问ClickListener...
它把我逼疯了?
我在这里做错什么了…
更新:
我发现问题出在minify身上。
构建类型{
释放{
minifyenabled为真
}
}
recyclerviewarrayadapter和listimageitemviewholder是名为“common”的模块的一部分。我在我的项目中提到这个模块。
现在,当我有一个普通的梯度设置为“缩小”假它的工作。
当我把它改成“缩小真实”的时候,它就回来了。
这看起来像是一个编译问题。但我不能忍受这个错误,也不能将生产版本的minify设置为false。
有人能帮我做些工作吗?
java - 无法访问类的内部接口(interface)-LMLPHP

最佳答案

试试这个,

new ListImageItemViewHolder().clickListener = new ClickListener(){
                @Override
                public void onClick(View v, int position, boolean isLongClick) {


                }
            });

这一行是指
然后你实例化它..
使用访问说明符public声明clicklistener

08-17 22:10