2013-07-30 34 views
8

Sto usando un semplice adattatore per visualizzare il mio codice. Sfortunatamente, ho bisogno di cambiare il colore del testo in alto.Cambia il colore del testo in android.R.layout.simple_list_item_2

Si tratta di un frammento del mio codice:

// 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); 

ho cercato di fare il mio simple_list_item_2, ma non mi avrebbe permesso di cambiare il colore di un textView in XML per qualche motivo. Qualche idea su come fare questo?

Il mio ultimo pensiero è:

findViewById(android.R.id.text1).setTextColor(#000) ma non so dove metterlo, e il mio codice esadecimale non funziona.

+0

Per il passaggio di un colore esadecimale, è necessario utilizzare 'setTextColor (Color.parseColor (" # YOURCOLOR "))'. Tuttavia, questo non funzionerebbe senza un adattatore personalizzato. –

risposta

1

creare un layout XML personalizzato per i vostri ListView voci e impostare il colore del testo del TextView utilizzando l'attributo textColor:

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

si devono ignorare GetView da SimpleAdapter. Per esempio:

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 non può essere risolto in un tipo' nel mio caso – jaimin

+0

è davvero strano @jaimin. Sarebbe meglio se pubblichi una nuova domanda per spiegare il tuo problema – Blackbelt

+1

Non penso che questa sia una buona soluzione. Non si deve mescolare la logica dell'applicazione con lo stile. Sarebbe meglio definire un layout personalizzato come suggerito da @FD_. – Jeremy

-1

Si dovrebbe usare setTextColor(Color.any color);

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

Se si utilizza un colore del testo discesa Spinner non cambierà. Per cambiare dobbiamo anche aggiungere il metodo precedente al metodo getDropDownView.

public View getDropDownView (int position, View convertView, ViewGroup parent) { 
                 View view = super.getDropDownView (position, convertView, parent); 
                 TextView text = (TextView) view.findViewById (android.R.id.text1); 
                 text.setTextColor (Color.BLACK); 
                 return view; 
             } 
Problemi correlati