Heim >Java >javaLernprogramm >Warum erhalte ich in Android die Meldung „Versuch, die virtuelle Methode ‚android.view.Window$Callback android.view.Window.getCallback()' für eine Nullobjektreferenz aufzurufen'?
„Versuch, die virtuelle Methode 'android.view.Window$Callback android.view.Window.getCallback()' für eine Nullobjektreferenz aufzurufen“ in Android
Dieser Fehler tritt auf, wenn eine Aktivität versucht, auf Ansichten zuzugreifen, bevor sie vollständig initialisiert wurde. Konkret wird der Fehler ausgelöst, wenn die Window.getCallback()-Methode für ein Nullobjekt aufgerufen wird, was passieren kann, wenn die setContentView()-Methode noch nicht in onCreate() aufgerufen wurde.
Ursache :
Um diesen Fehler zu verhindern, ist es wichtig, Ansichtsfelder zu deklarieren, ohne sie in der Klasse zu initialisieren Deklaration:
private EditText usernameField, passwordField; private TextView error; private ProgressBar progress;
Dann weisen Sie diesen Feldern innerhalb von onCreate() Werte zu, nachdem setContentView() aufgerufen wurde:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); usernameField = (EditText)findViewById(R.id.username); passwordField = (EditText)findViewById(R.id.password); error = (TextView)findViewById(R.id.error); progress = (ProgressBar)findViewById(R.id.progress); }
Zusätzlicher Hinweis:
new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(SplashActivity.this, LoginActivity.class); startActivity(intent); finish(); } }, 1500);
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Android die Meldung „Versuch, die virtuelle Methode ‚android.view.Window$Callback android.view.Window.getCallback()' für eine Nullobjektreferenz aufzurufen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!