Inhalt einer TextView lässt sich nicht ändern

  • 4 Antworten
  • Letztes Antwortdatum
B

Boris0815

Fortgeschrittenes Mitglied
4
Hallo,

ich habe ein Problem den Inhalt einer TextView zu ändern. Der Wert der TextView wird zwar geändert (im Debugger gesehen), aber in meiner App ändert sich der Wert nicht.
Ich habe ein Klasse in der ich in einer Methode die TextView "hole" und einen Wert setze. In einer Update-Methode möchte ich diesen Wert dann ändern. Dies Funktioniert nur leider nicht. Hier mal stark verkürzt der Quellcode (Im Switch steht eigentlich mehr, hab ich aber wegen der Übersicht entfernt):

Code:
public class Information {
    private LayoutInflater inflater;
    private TextView offenseValue;
    private View myPage;
    
    public Information(Context con){
        inflater = LayoutInflater.from(con);
    }
    
    public View FillInformation() {   
        myPage = inflater.inflate(R.layout.page_information, null);
             
        offenseValue = (TextView)myPage.findViewById(R.id.txtAttributeAttackValue);
        offenseValue.setText("Textalt");
    }
    
    public void UpdateInformation(UpdateAttributeData uAData, int attrib){
        switch(attrib){
            case 1:           
                offenseValue.setText("Textneu");
                break;
            default:
                break;
        }
    }
}
HTML:
                     <TextView 
                     android:id="@+id/txtAttributeAttackValue"
                     android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:textSize="16dip"
                     android:text="@string/AttributeOffenseValue"
                     android:textStyle="bold"
                     android:layout_marginLeft="10dip"
                         />
Kann mir da jemand bitte helfen? Und gibt es evtl. einen besseren Weg den Inhalt meiner View zu binden?
In WPF (.Net) geht das alles automatisiert, gibt es das bei Android auch?

Gruß

Boris
 
bist im richtigen Thread? UI kann man nur im UI thread bearbeiten
 
  • Danke
Reaktionen: Boris0815
Wenn du diese Zeile über deinen neuen Text einfügst gehts aber oder wie?

Code:
offenseValue = (TextView)myPage.findViewById(R.id.txtAttributeAttackValue);
 
Hallo,

bist im richtigen Thread? UI kann man nur im UI thread bearbeiten

Daran hat es wohl gelegen. Ich habe versentlich die "FillInformation()" zweimal aufgerufen. Dadurch habe ich wohl zwei Views gehabt.

Gibt es keinen eleganteren Weg in Android? Die Trennung zwischen View und Code ist da aber das Binding find ich arg umständlich...

Gruß

Boris
 
Ich weis jetzt nicht genau auf was du hinaus willst aber wieso implementierst du nicht ein Observer-Pattern? Wo sich alle View-Elemente einklinken und ggf. über notify benachrichtigt werden über neue Informationen?
 

Ähnliche Themen

D
Antworten
5
Aufrufe
594
swa00
swa00
BerndFfm
Antworten
7
Aufrufe
1.238
swa00
swa00
Zurück
Oben Unten