创建基本通用视图类

时间:2016-12-24 10:21:38

标签: java android generics inheritance view

我尝试为所有自定义视图创建基类,其中还包括演示者和绑定。但我无法实现泛型继承。请指出我错在哪里

public abstract class BasePresenterView<T extends View> extends BaseView<T>{
public BasePresenterView(Context context){
    this(context, null);
}

public BasePresenterView(Context context, AttributeSet attrs){
    super(context, attrs);
    init(context);
}


private void init(Context context) {
    injectViews(createView(context));
}

private View createView(Context context) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = null;
    if (inflater != null) {
        view = inflater.inflate(getLayout(), null);
    }
    return view;
}

private void injectViews(View view) {
    ButterKnife.bind(this, view);
}

public abstract Subscription bind();

protected abstract int getLayout();}

和BaseView类

public abstract class BaseView<T extends View>{}
问题是我无法调用超级方法。 以下是我想要使用它的方法:

public class ToolBarLiker extends BasePresenterView<Toolbar>{

public ToolBarLiker(Context context, AttributeSet attrs){
    super(context, attrs);
}

@Override
public Subscription bind(){
    return Subscriptions.from();
}

@Override
protected int getLayout(){
    return R.layout.toolbar_liker_tab;
}
}

因此隐藏和查找视图的实现是隐藏的 感谢

1 个答案:

答案 0 :(得分:0)

替换

public abstract class BaseView<T extends View>{}

public abstract class BaseView<T extends View> extends View {
    public BaseView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
}

希望它有所帮助。
祝你好运。