我有一個自定義列表視圖,我正在使用自定義listadapter來顯示該列表。在我的自定義listadapter中,我試圖根據對象內的值動態設置每個項目的顏色。然而,無論何時我嘗試這樣做,項目都會變淡,而不是獲取它們設置的顏色。我在項目中應用了一些樣式,但是當我刪除它們的效果時,它仍然不起作用。這是我的代碼來改變每個項目的背景色:爲什麼我無法動態設置自定義Listview項目的背景?
private class stationAdapter extends ArrayAdapter<Station>{
private ArrayList<Station> stations;
public stationAdapter(Context context, int textViewResourceId, ArrayList<Station> stations) {
super(context, textViewResourceId, stations);
this.stations = stations;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
Station temp = stations.get(position);
if (temp != null) {
TextView stationName = (TextView) v.findViewById(R.id.stationname);
TextView serviced = (TextView) v.findViewById(R.id.inservice);
try{
if(temp.getLine().equals("red")){
v.setBackgroundColor(R.color.red);
}
else{
v.setBackgroundColor(R.color.green);
}
}catch(Exception e){
Log.d(TAG, "Null pointer");
}
if (stationName != null) {
stationName.setText("Station: "+temp.getName()); }
if(serviced != null){
serviced.setText("In Service: "+ temp.getInServive());
}
}
return v;
}
}
如果有人能指出我在做什麼錯了,我真的很感激它。
那麼使用這個drawable來設置顏色,這也將解決我的新突出問題?謝謝 – Hugs 2011-06-16 14:50:20
是的,這會解決它。這個選擇器說的是:只對默認狀態(未按下,未選中等)應用紅色,對於其他任何情況,使用默認顏色/可繪製。 – dmon 2011-06-16 14:51:01