2011-05-23 5 views
5

Dans mon application, je veux changer la couleur du texte de la liste. Dans ce cas, j'utilise un fichier XML pour la vue liste. C'est possible? Si oui, donnez l'exemple.Comment changer la couleur de la liste?

gender.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
android:background="@drawable/topelg" 
> 

     <ListView 
     android:id="@+id/android:list" 
     android:layout_marginTop="60dip" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:textColor="#000000" 

     /> 

</LinearLayout> 

Egender.java

package com.Elgifto; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.LinearLayout; 
import android.widget.LinearLayout.LayoutParams; 
import android.widget.ListView; 

public class Egender extends ListActivity{ 
    Button b1; 
    ListView lv; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.gender); 

     // b1=(Button) findViewById(R.id.butt1); 
     b1=new Button(this); 
     b1.setText("Done"); 

     //b1.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     lv=(ListView) findViewById(android.R.id.list); 

     lv.addHeaderView(b1); 

     b1.setOnClickListener(new OnClickListener(){ 
       public void onClick(View v) 
       { 
        // To send a result, simply call setResult() before your 
        // activity is finished. 

        finish(); 
       } 
     }); 

     lv.setAdapter(new ArrayAdapter&lt;String&gt;(this, 
       android.R.layout.simple_list_item_single_choice, GENDER)); 

     lv.setBackgroundColor(Color.BLACK); 
     lv.setItemsCanFocus(false); 
     lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
     lv.setTextFilterEnabled(true); 

    } 

    private static final String[] GENDER = new String[] { 
     "Male","Female" 
    }; 
} 

Répondre

19

Si vous souhaitez modifier la couleur de tous les éléments ListView, au lieu de passer par défaut android.R.layout.simple_list_item_single_choice à ArrayAdapter vous devez passer élément de liste personnalisé XML, qui a un attribut TextColor différent.

Par exemple, créé custom_list_item.xml sous le dossier Mise en page:

<?xml version="1.0" encoding="utf-8"?> 
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/text1" 
android:layout_width="fill_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
android:textAppearance="?android:attr/textAppearanceLarge" 
android:gravity="center_vertical" 
android:checkMark="?android:attr/listChoiceIndicatorSingle" 
android:paddingLeft="6dip" 
android:paddingRight="6dip" 
android:textColor="#FF0000" 
/> 

ensuite passé à l'adaptateur:

new ArrayAdapter<String>(this, R.layout.custom_list_item, stringList) 

J'ai la liste, étaient tous les articles sont rouges.

+0

Super Bro !!!!!! – Karthik

+0

Salut j'ai utilisé ur au-dessus du code .. mais les éléments sélectionnés ne sont pas activés, c'est à dire, le bouton de ratio n'est pas activé. comment faire ça – user1835052

Questions connexes