suchen
HeimJavajavaLernprogrammWarum erhalte ich eine NullPointerException, wenn ich auf Ansichten in meiner LoginActivity zugreife?

Why Am I Getting a NullPointerException When Accessing Views in My LoginActivity?

NullPointerException: Versuch, einen Rückruf aus einem nicht initialisierten Fenster abzurufen

Beim Navigieren von SplashActivity zu LoginActivity tritt in der App ein Fehler auf:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference

Dieser Fehler weist darauf hin, dass LoginActivity versucht, zuvor auf eine Ansichtskomponente zuzugreifen wurde ordnungsgemäß initialisiert.

Ursache

Die spezifische Ursache des Fehlers liegt im LoginActivity.java-Code, in dem die Klassenmitglieder initialisiert werden, bevor setContentView() aufgerufen wird onCreate(). Dies führt dazu, dass die Ansichten noch nicht vorhanden sind, wenn die Klassenmitglieder versuchen, sie zu finden.

Lösung

Um das Problem zu beheben, deklarieren Sie die Ansichtsmitglieder in die Klasse ohne Initialisierung:

private EditText usernameField, passwordField;
private TextView error;
private ProgressBar progress;

Dann initialisieren Sie die Mitglieder in onCreate(), nachdem setContentView() ausgeführt wurde aufgerufen:

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

Obwohl dies nicht direkt mit dem Fehler zusammenhängt, wird empfohlen, Timer durch Handler zu ersetzen, wenn eine Aufgabe im UI-Thread ausgeführt wird:

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 eine NullPointerException, wenn ich auf Ansichten in meiner LoginActivity zugreife?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools