Я пытаюсь передать некоторые взгляды ClassA от абстрактного ClassB, так что ClassA можно использовать: ClassA extends ClassB
Попутный вид из абстрактной деятельности
Вместо того, чтобы использовать что-то вроде этого для каждого вида я хотел бы быть унаследованы/передал:
protected View getView1() {
return view1;
}
Я хочу насыпной способ позволить ClassX (в данном случае, ClassA) знает, рассматривающий его следует использовать. Но сохраните некоторые частные взгляды для использования ClassB для себя.
Код ниже работает, но это нормально? или есть лучший способ?
public abstract class ClassB extends Activity {
abstract void useTheseViews(View view1, View view2);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View view1 = findViewById(R.id.view1);
View view2 = findViewById(R.id.view2);
useTheseViews(view1, view2);
View view3 = findViewById(R.id.view3);
view3.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// do something independent here
}
});
}
}
public class ClassA extends ClassB {
private View view1, view2;
@Override
void useTheseViews(View view1, View view2) {
this.view1 = view1;
this.view2 = view2;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view1.setOnClickListener(..);
view2.setOnClickListener(..);
}
}
Причина? ClassA и ClassX используют один и тот же базовый макет, но выполняют разные функции на одних и тех же представлениях.
My ClassB имеет базовый макет и инициализирует представления (кнопки, переключатели ..) и использует некоторые представления для себя независимо от того, какой класс расширяет его.
Почему бы вам просто не использовать фрагменты? Это лучший способ составить свою деятельность. – AnixPasBesoin
Это поможет нам лучше понять, что вы делаете, если вы показываете скриншоты или макеты каждого экрана. Как упоминала Аникс, лучше было бы использовать Фрагменты вместо Деяний. –
с Фрагментами вы составляете свою деятельность модульным способом, с наследованием вы составляете свою деятельность по-иерархически, я не вижу, как фрагменты могут решить проблему здесь – lelloman