Fehlende Ausgabe in der Activity

  • Antworten:4
Dom Santiago
  • Forum-Beiträge: 30

06.09.2011, 07:59:21 via Website

Hallo zusammen!
Wie viele andere versuche ich mich gerade an meiner ersten App und hänge hier an einer Sache, die auf dem ersten Blick ziemlich trivial erscheint.
Ich würde gerne einen String-Wert in meiner Activity ausgeben lassen.
Dieser String-Wert wird der Methode „getErgebnis(String ergebnis)“ übergeben und soll nun in das Layout eingefügt werden. Doch hier kommt es nun zu einer NullPointerException. Eigentlich dürfte es doch nur an der Übergabe des Wertes hängen, oder täusche ich mich da? Ich habe schon einige Sachen ausprobiert komme aber zu keinem Ergebnis, ich hoffe ihr könnt mir einen Tipp geben!
Ich habe die betreffenden Codezeilen mit angefügt. Danke!

1public void getErgebnis(String ergebnis){
2 final TextView txtErgebnis =
3 (TextView) findViewById(R.string.tippAusgabe);
4 txtErgebnis.setText(String.valueOf(ergebnis));
5 }

1main.xml
2<TextView
3 android:layout_height="wrap_content"
4 android:text="@string/tippAusgabe"
5 android:textStyle="bold"
6 android:textSize="24sp"
7 android:textColor="#ffffffff"
8 android:layout_gravity="center"
9 android:layout_width="wrap_content"
10 android:layout_marginTop="6sp"/>

1strings.xml
2 <string name="tippAusgabe"></string>

Hier noch die Fehlerausgabe:
1Uncaught handler: thread main exiting due to uncaught exception
2java.lang.NullPointerException
3at android.app.Activity.findViewById(Activity.java:1612)
4at de.android.tippassistent.Tippassistent.getErgebnis(Tippassistent.java:141)

Antworten
Florian B.
  • Forum-Beiträge: 284

06.09.2011, 09:10:10 via Website

Hier
1final TextView txtErgebnis = (TextView) findViewById(R.string.tippAusgabe);
passiert der Fehler.

Das "R.string.tippAusgabe" ist nicht korrekt. Das muss vermutlich "R.id.tippAusgabe" heissen.

— geändert am 06.09.2011, 09:10:33

Antworten
Dom Santiago
  • Forum-Beiträge: 30

06.09.2011, 13:43:15 via Website

Danke für die Rückmeldung, ich werde es heute Abend gleich ausprobieren.
Aber wenn es der Fehler ist, wie lässt er sich erklären?

Das würde doch auch bedeuten, dass ich android:text="@string/tippAusgabe" ändern müsste in android:id="@+id/tippAusgabe" und was ist mit <string name="tippAusgabe"></string> ?

Ich würde gerne den Fehler verstehen.

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

06.09.2011, 14:32:32 via Website

es ist ein unterschied, ob du die id der TextView nimmst oder den text

die id der TextView wird mit

android:id="@+id/tvText"

festgelegt.

Ein Text aus einer string.xml wird mittels

android:text="@string/text"

bei
<string name="text">asdf</string>

gesetzt.

Somit wäre deine komplette TextView

<TextView
android:id="@+id/tvText"
android:text="@string/text"
... />

abrufbar über
findViewById(R.id.tvText)

swordiApps Blog - Website

Antworten
Dom Santiago
  • Forum-Beiträge: 30

06.09.2011, 15:46:06 via Website

Danke Markus, super erklärt.
Doch eine Frage bleibt mir noch. Du hast in deinem Beispiel den String name mit einem festen Wert versehen (asdf), wie übergebe ich den meinen String der Variable <string name="tippAusgabe"></string>, oder wird der Wert automatisch beim Aufruf der TextView übergeben?

Antworten