2016-12-24 3 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 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

привет Кевин, я не могу построить супер конструктор пройденного родового андроида Просмотр класса – Alex

ответ

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

Надежда это помогает.
Удачи.