我有一個抽象適配器類從外部庫: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