2016-12-24 7 views
0

プレゼンターとバインディングも含むすべてのカスタムビューの基本クラスを作成しようとしています。しかし、私はジェネリック継承を実装することはできません。私は間違っているという問題は、私はスーパーメソッドを呼び出すことはできませんということです基本ジェネリックビュークラスを作成する際の問題

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 abstract class BaseView<T extends View> extends View { 
    public BaseView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 
} 

がそれを願っています

public abstract class BaseView<T extends View>{} 

と交換

+1

私はスーパーメソッドを呼び出すことができませんとはどういう意味ですか? - どのような正確な方法を意味しているのか、コード例で何が動作していないかを教えてください。 –

+0

こんにちはKevin、私は渡されたジェネリックアンドロイドのスーパーコンストラクタを見ることができませんViewクラス – Alex

答えて

0

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; 
} 
} 

だから、膨らませるとビューを見つけることの実装はヒデされ ありがとう:ここに は、私はそれを使用する方法であります助けてください。
幸運。

関連する問題