Я внедряю пользовательские виды переработчика для ответа на экземпляры класса с определенными параметрами.Для этого мне пришлось реализовать VieHolders.Я создал абстрактный ViewHolder, чтобы я мог передать оба макета для раздувания.Тем не менее, когда я наследую от суперкласса и пытаюсь реализовать конструктор в абстрактном классе, он не принимает аргументы, что конкретный класс, и я получаю сообщение о том, что конструктор по умолчанию недоступен из родительского класса.
То, что я ожидаю, чтобы работать:
private abstract class CrimeHolder extends RecyclerView.ViewHolder{
public CrimeHolder(View view, ViewGroup parent, Boolean false){
super(view, parent, false);
}
И тогда классы, которые выходят из этого, просто сделают это:
private class RegularCrimeHolder extends CrimeHolder{
public RegularCrimeHolder(Inflater inflater, ViewGroup parent{
super(inflater.inflate(R.layout.list_item_crime, parent, false));
}
}
Но на самом деле происходит то, что CrimeHolder можетне передать те же аргументы суперконструктору, что и конкретный класс, или я получаю «Не найден конструктор по умолчанию», поэтому CrimeHolder записывается так:
abstract class CrimeHolder extends RecyclerView.ViewHolder {
private CrimeHolder(View view){
super(view);
}
}
Несмотря на то, что этот конструктор у меня былдля написания для CrimeHolder требуется только один аргумент View. Мне все еще нужно передать полные аргументы суперконструктору в RegularCrimeHolder.Почему дочерний класс вызывает супер-конструктор с таким количеством аргументов?