Эти вызовы в onPostResume
абстрактных действий, безусловно, происходят после setContentView(R.layout.activity_method_two);
в дочерних классах. Но я получаю java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RadioButton.setChecked(boolean)' on a null object reference
в любом случаеonPostReume в абстрактном классе, получающем нуль ContentView после того, как onCreate в дочернем классе создает экземпляр
Почему я не могу это сделать?
public class MethodTwo extends AbstractMethod {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_method_two);
}
@Override
void set_default_method() {
rb_default = (RadioButton) findViewById(R.id.radio_button_method_two);
}
}
и
public abstract class AbstractMethod extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener {
RadioGroup rg_method;
RadioButton rb_default;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
set_default_method();
}
@Override
protected void onPostResume() {
super.onPostResume();
rb_default.setChecked(true);
rg_method = (RadioGroup) findViewById(R.id.radio_group_method_select);
rg_method.setOnCheckedChangeListener(this);
}
выдает ошибку в трассировки стека:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RadioButton.setChecked(boolean)' on a null object reference
если я двигаю setContentView
в OnCreate в абстрактном классе (сразу после super.oncreate()
), он работает .. но тогда у меня нет абстрактного класса для нескольких дочерних классов.
Если вы поставите 'setContentView (R.layout.activity_method_two); 'в абстрактном классе это происходит? – newhouse
Я только что вернулся, вспомнив, что забыл добавить это к описанию :) –
[Этот ответ] (http://stackoverflow.com/a/29953146/1435985) - одно из возможных решений. Вы перемещаете 'setContentView' в абстрактный класс, и классы реализации переопределяют метод для предоставления идентификатора макета. –