diese Anrufe in onPostResume
der abstrakten Tätigkeit geschehen definitiv nach setContentView(R.layout.activity_method_two);
in den Kindklassen. Aber ich bekomme java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RadioButton.setChecked(boolean)' on a null object reference
auf jeden FallonPostReume in der abstrakten Klasse, die null erhält Inhalt Inhalte nach onCreate in der Kindklasse instanziiert es
Warum kann ich das nicht tun?
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);
}
}
und
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);
}
erzeugen einen Fehler in dem Stack-Trace:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RadioButton.setChecked(boolean)' on a null object reference
wenn ich die setContentView
in die onCreate in der abstrakten Klasse (nur nach super.oncreate()
) bewegen, es funktioniert .. aber dann habe ich keine abstrakte Klasse für mehrere Kindklassen.
sein, wenn Sie 'setContentView setzen (R.layout.activity_method_two); 'Auf der abstrakten Klasse passiert es ?? – newhouse
Ich kam gerade zurück und erinnerte mich, dass ich vergessen habe, das zur Beschreibung hinzuzufügen :) –
[Diese Antwort] (http://stackoverflow.com/a/29953146/1435985) ist eine mögliche Lösung. Sie verschieben 'setContentView' in die abstrakte Klasse und lassen die implementierenden Klassen eine Methode überschreiben, um die Layout-ID bereitzustellen. –