【发布时间】:2016-11-09 05:00:36
【问题描述】:
我有一个来自外部库的抽象适配器类:
public abstract class DragItemAdapter<T, VH extends DragItemAdapter.ViewHolder> extends RecyclerView.Adapter<VH> {
//Their other codes
public class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(final View itemView, int handleResId) {
super(itemView);
//The rest of their codes
}
}
}
我的适配器扩展了那个适配器
public class ChecklistAdapter extends DragItemAdapter<Pair<Integer, SomeClass>, ViewHolderForChecklist> {
@Override
public ViewHolderForChecklist onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
grab = R.id.grab;
return new ViewHolderForChecklist(view,grab);
}
}
如果我的ViewHolderForChecklist 是ChecklistAdapter 的内部类,它可以正常工作。但是如果我将ViewHolderForChecklist 移动到一个全新的类
public class ViewHolderForChecklist extends DragItemAdapter<Pair<Long, SomeClass>, ViewHolderForChecklist>.ViewHolder { // The error is at this line
public ViewHolderForChecklist(final View itemView, int grab) {
super(itemView, grab);
}
@Override
public void onItemClicked(View view) {
}
@Override
public boolean onItemLongClicked(View view) {
return true;
}
}
实时有错误
范围内没有“library.package.name.DragItemAdapter”类的封闭实例
以及编译时的错误
错误:需要包含 DragItemAdapter.ViewHolder 的封闭实例
使用 Refractor 中的“移动”有同样的问题。我对这种......“嵌套类”仍然很陌生,所以我不知道这有什么问题,或者我应该包含更多什么样的信息。
谢谢!
【问题讨论】:
标签: java android abstract-class extends android-viewholder