2012-04-13 2 views
0

Ich habe eine erweiterte ListActivity-Klasse, in der ich die Namen von Städten und Staaten anzeigen möchte. Städte sollten blau sein und Zustände müssen rot sein. Ich verwende einen ListView und einen ArrayAdapter, um die Liste anzuzeigen. Ich habe viel gesucht, aber alles, was ich habe, benutzt XMLs. Bitte helfen Sie mir .. Vielen Dank im Voraus.So färben Sie Listenelemente (Strings) in einer ListActivity, ohne XMLs zu verwenden

Mein Code sieht wie folgt aus:

String cities[]={"....."}; 
String stated[]={"....."}; 
private ArrayList<String> list_places = new ArrayList<String>(); 
Private ArrayAdapter<String> list_adapter; 
list_adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,list_places); 
for(int i=0;i<10;i++) 
{ 
if(isCity()) 
    /*Text in blue*/ 
    list_adapter.add(cities[i]); 
else 
    /*Text in red*/ 
    list_adapter.add(states[i]); 
} 
setListAdapter(list_adapter); 
+0

unter Verwendung von XML ist die einzige Art und Weise, durch die man kann die Kontrolle über die Listenelemente ... – ngesh

+0

@sandy: Nun, Sie können immer programmatisch Natürlich erstellen Sie das Layout für die Listenelemente, obwohl ich zustimmen würde, dass dies mühsamer wäre als die Verwendung vordefinierter XML-Layouts. :) –

Antwort

0

versuchen diesen Adapter

public class ListColor BaseAdapter erstreckt {

String[] items = { "Hello ", "hi", " how are you" }; 
Context mContext; 

public ListColor(Context c) { 

    mContext = c; 

} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return items.length; 
} 

@Override 
public Object getItem(int arg0) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int arg0) { 
    // TODO Auto-generated method stub 
    return 0; 
} 

@Override 
public View getView(int arg0, View arg1, ViewGroup arg2) { 
    // TODO Auto-generated method stub 
    TextView tv = new TextView(mContext); 
    tv.setText(items[arg0]); 
    tv.setTextColor(Color.RED); 

    return tv; 
} 

}

Verwandte Themen