2012-04-13 5 views
0

У меня есть расширенный класс ListActivity, в котором я хочу отображать названия городов и состояний. Города должны быть синими, а состояния должны быть красными, я использую ListView и ArrayAdapter для отображения списка. Я много искал, но все, что у меня есть, - это использование XML. Кто-нибудь, пожалуйста, помогите мне .. Спасибо заранее.Как перечислить элементы списка (строки) в ListActivity без использования XML

Мой код выглядит следующим образом:

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

с использованием XML является единственным способом, через который вы может контролировать элементы списка ... – ngesh

+0

@sandy: ну, вы всегда можете запрограммировать Конечно, создайте макет для элементов списка, хотя я согласен, что это будет более громоздким, чем использование предопределенных макетов xml. :) –

ответ

0

попробовать этот адаптер

общественного класса ListColor расширяет BaseAdapter {

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; 
} 

}