2013-07-30 7 views
8

Ich verwende einen einfachen Adapter, um meinen Code anzuzeigen. Leider muss ich die oberste textView Farbe ändern.Ändern Sie die Textfarbe in android.R.layout.simple_list_item_2

Dies ist ein Ausschnitt aus meinem Code:

// Keys used in Hashmap 
String[] from = { "txt1", "txt2" }; 
// Ids of views in listview_layout 
int[] ids = { android.R.id.text1, android.R.id.text2 }; 
SimpleAdapter adapter = new SimpleAdapter(this, aList, 
android.R.layout.simple_list_item_2, from, ids); 
setListAdapter(adapter); 

Ich habe versucht, mein eigenes simple_list_item_2 zu machen, aber es würde mich nicht zulassen, dass aus irgendeinem Grund die Farbe eines Textview in XML ändern. Irgendwelche Ideen, wie man das macht?

Mein letzter Gedanke ist:

findViewById(android.R.id.text1).setTextColor(#000) aber ich weiß nicht, wo es zu setzen, und mein Hex-Code funktioniert nicht.

+0

Um eine Hexfarbe zu übergeben, müsste 'setTextColor (Color.parseColor (" # YOURCOLOR "))' 'verwendet werden. Dies würde jedoch ohne einen benutzerdefinierten Adapter nicht funktionieren. –

Antwort

1

ein benutzerdefiniertes XML-Layout für Ihre ListView Elemente erstellen und die Textfarbe der TextView mit dem textColor Attribute:

<TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TextView" 
      android:textColor="#ff0000" /> 
16

Sie haben getView von SimpleAdapter außer Kraft zu setzen. Zum Beispiel:

SimpleAdapter adapter = new SimpleAdapter(this, aList, 
      android.R.layout.simple_list_item_2, from, ids) { 

     public View getView(int position, View convertView, ViewGroup parent) { 
      View view = super.getView(position, convertView, parent); 
      TextView text1 = (TextView) view.findViewById(android.R.id.text1); 
      text1.setTextColor(Color.RED); 
      return view; 
     }; 
    }; 
+0

'ViewGroup kann nicht zu einem Typ aufgelöst werden" in meinem Fall – jaimin

+0

ist es wirklich seltsam @jaimin. Es wäre besser, wenn Sie eine neue Frage stellen, erklären Sie Ihr Problem – Blackbelt

+1

Ich denke nicht, dass dies eine gute Lösung ist. Sie sollten die Anwendungslogik nicht mit dem Styling kombinieren. Es wäre besser, ein benutzerdefiniertes Layout als @FD_ vorgeschlagen zu definieren. – Jeremy

-1

sollten Sie setTextColor(Color.any color);

TextView txt = (TextView) view.findViewById(R.id.text1); 
txt.setTextColor(Color.yellow); 
0

verwenden Wenn Sie ein Spinner Drop-Down-Textfarbe verwenden wird sich nicht ändern. Um zu ändern, müssen wir auch die obige Methode der Methode getDropDownView hinzufügen.