我有一个抽象适配器类从外部库:Android的 - “型‘some.abstract.class.name’没有封闭实例类的范围是”错误时延长
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;
}
}
有实时
No enclosing instance of type 'library.package.name.DragItemAdapter' class is in scope
错误,并使用“移动”,从折射错误时编译
error: an enclosing instance that contains DragItemAdapter.ViewHolder is required
有同样的问题。我还是新来这样......“嵌套类的”,所以我不知道什么是错的这样或什么样的信息我应该包括更多。
谢谢!
类似的,请看一下:http://stackoverflow.com/a/22117161/3931910 – YakuZa