TextView.setText (Android) verursacht Abstürze .. irgendeine Idee warum?

8

Ich versuche, mit der Android-Entwicklung zu beginnen und einige grundlegende Arbeiten mit TextViews zu machen.

Aus irgendeinem Grund verursacht die setText () -Methode von TextView große Probleme für mich. Hier ist eine vereinfachte Version meines Codes, um zu zeigen, was ich meine:

%Vor%

Das wird einen Absturz verursachen, und ich verstehe nicht warum. Wenn ich das TextView innerhalb von onCreate erstelle, funktioniert es gut, aber wenn ich es außerhalb davon erstelle, tut es das nicht. Warum ist das so? Hat die Zeile "TextView text" noch nicht ausgeführt oder so?

Danke!

    
Zeldarulah 08.08.2013, 20:01
quelle

4 Antworten

9

Sie müssen setContentView () aufrufen, bevor Sie TextView initialisieren, damit Ihre Aktivität auf alle Layoutkomponenten zugreifen kann.

%Vor%     
Philipp Jahoda 08.08.2013, 20:02
quelle
3

schalte diese 2 Zeilen um

%Vor%

Sie müssen den Inhalt zuerst festlegen

    
tyczj 08.08.2013 20:02
quelle
2

Aus der Dokumentation:

  Mit

onCreate (Bundle) initialisieren Sie Ihre Aktivität. Die meisten   wichtig, hier rufen Sie normalerweise setContentView (int) mit einem   Layout-Ressource, die Ihre Benutzeroberfläche definiert und findViewById (int) verwendet   rufen Sie die Widgets in dieser Benutzeroberfläche ab, mit denen Sie interagieren möchten   programmgesteuert.

Dies bedeutet also, dass Sie, wenn Sie Ihre Ansichten im Layout referenzieren, zuerst die Inhaltsansicht festlegen und dann die Methode findViewById aufrufen müssen, um auf untergeordnete Sichten der Layout-Ressource zu verweisen, die die UI Ihrer Aktivität definieren.

    
Mocialov Boris 08.08.2013 20:09
quelle
2
%Vor%

Wenn "wörtlich alles" eine Variable ist, was oft der Fall sein kann, stellen Sie sicher, dass keine NullPointerException ausgelöst wird. Ich habe dieses Problem selbst immer wieder gehabt. Ich habe es festgelegt:

%Vor%

Ausnahmen können wirklich nützlich sein. Wenn Sie also ein Anfänger sind, schlage ich vor, dass Sie die Ausnahmebehandlung in die Liste der Dinge aufnehmen, die Sie bald lernen werden.

    
Astrolamb 19.07.2017 19:07
quelle

Tags und Links