Fontcolor während der Laufzeit ändern

O

orium

Ambitioniertes Mitglied
11
Hey Leute,

hätte mal ne kurze Frage bzgl. einem momentanen "Problem" von mir. Und zwar sieht meine App folgendermaßen aus:
1.) Lade Daten in einem AsyncTask aus dem Internet
2.) In der Post Methode wird eine neue ListView anhand eines SimpleAdapter und der bezogenen Daten erstellt -> für die List Items habe ich eine extra Layout Datei erstellt

So nun folgendes "Problem", ich will in der .xml Datei des einzelnen list items von 2 text views die Fontcolor ändern, kann aber bevor die Liste nicht initialisiert/erstellt ist, mir Objekte der TextViews erzeugen lassen ( bzw. schon, jedoch dann NullPointer)

Hätte eventuell für mich jemand einen Lösungsansatz, wie man die FontColor von list items einer ListView sozusagen dynamisch halten kann?

LG
Alex
 
Hast du denn auch einen Curstom Andapter? Oder arbeitest du mit dem normalen SimpleAdapter aber deinem eigenen Layout... geht das überhaupt? :D

Du kannst doch im layout des Item sagen
Code:
android:color="#fffffff"
Oder warum im Code?

Gruß
 
wo genau soll das problem sein ?

ein bisschen code deines listadapters wäre hilfreich

im grunde einfach
tvText.setTextColor(xxx);
 
Ja klar geht das, einfach im SimpleAdapter das custom layout angeben :)

Ich persönlich finde das cool, wenn man in einer App selbst den Hintergrund bestimmen kann (klappt auch soweit, eben dann auch gespeichert über Preferences), nun will ich eben der einzelnen ListItems auch die Fontcolor bestimmen, weil wenn ich die Farbe immer schwarz lasse und der Benutzer ein dunkles Hintergrundbild möchte, muss die Schriftfarbe ja dann weiß/hell sein :p

Der ursprüngliche Beitrag von 10:27 Uhr wurde um 10:28 Uhr ergänzt:

Mein eigentliches Problem liegt darin, dass ich eben ein Object von meinem TextView erzeugen möchte: z.b.: TextView text1 = (TextView) findViewbyId(R.layout.text1)
Das klappt ja dann soweit, jedoch wenn ich die Schriftfarbe setzen möchte, bekomme ich einen Nullpointer, da die Liste scheinbar noch nicht richtig initialisiert wurde, sodass ich auf die Listitems zugreifen kann
 
und der entsprechende code ist so geheim, dass du ihn nicht zeigen willst ?
 
Du kannst auch kein layout in ein TextView wandeln xD

Gruß
 
Sekunde ich häng sofort was an :)

haha nein IceClaw, natürlich will ich auf die TextViews referenzieren, nicht das komplette Layout

Der ursprüngliche Beitrag von 11:10 Uhr wurde um 11:21 Uhr ergänzt:

So, hier mal der Aufruf des SimpleAdapters:

Code:
 SimpleAdapter adapter = new SimpleAdapter(this,
			srcList, R.layout.list_items_server,
			new String[] { "serverDesc", "statusText", "icon" }, 
                        new int[] { R.id.tv_ServerDesc, R.id.tv_ServerStatustext,
			R.id.iv_StatusIcon });

srcList ist eben meine Quelle, wo ich meine Daten liegen habe,
davon Ziehe ich mir dann eben server desc, status text sowie icon und schreibe sie dann in die danach folgenden Felder rein.

Hier das Layout der list items (R.layout.list_items_server):

Code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/iv_StatusIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:padding="5dp"
	android:scaleX="1.5"
	android:scaleY="1.5"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/tv_ServerDesc"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="6"
            android:paddingLeft="10dp"
            android:paddingTop="10dp"
            android:textColor="@android:color/primary_text_light"
            android:textSize="22sp" />

        <TextView
            android:id="@+id/tv_ServerStatustext"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="4"
            android:paddingLeft="10dp"
            android:paddingTop="3dp"
            android:textColor="@android:color/secondary_text_light"
            android:textSize="14sp" />
    </LinearLayout>

</LinearLayout>


So und nun würde ich eben gerne von den beiden TextViews die textcolor dynamisch machen, kann aber nicht einfach bevor die Liste gar nicht existiert mir TextView Objekte davon erzeugen, sonst bekomme ich hier einen Nullpointer.
Daher gibts da doch bestimmt andere Lösungsansätze oder nicht? :)
 

Ähnliche Themen

M
Antworten
3
Aufrufe
162
moin
M
D
Antworten
14
Aufrufe
1.704
chrs267
chrs267
C
  • Chicken Wing
Antworten
4
Aufrufe
852
Chicken Wing
C
Zurück
Oben Unten