2010-11-22 62 views
0

我得到了一個使用SimpleAdapter顯示的元素列表,該列表獲取要顯示的元素列表。 對象列表中的元素(我傳遞給SimpleAdapter的元素)有一個字段,我想用它來區分元素的樣式(元素是TextView)以顯示,但我不知道如何去做。Android SimpleAdapter更改元素樣式

在此先感謝

Jaxer的

回答

2

你需要繼承適配器(或其子之一),並沿做這個東西線在getView方法:

TextView row; 
// Recycle an already-inflated view if possible 
if (convertView == null) { 
    row = (TextView) View.inflate(android.R.layout.simple_list_item_1, getContext()); 
} else { 
    row = (TextView) convertView; 
} 
SomeModel myItem = getItem(pos); 
if (getItem(pos).displayFunky()) { //or whatever object condition you want to check 
    row.setTextColor(Color.RED) 
} else { 
    row.setTextColor(Color.GREEN) 
} 

row.setText(myItem.getDisplayText()); 

return row; 

你也可以有一個自定義適配器與多個視圖類型,但這是一個足夠簡單的情況下,我可能不會打擾。另請參閱this SO post。您還應該查看適配器的示例代碼(例如,one from NPR)和更復雜的多視圖適配器tutorial。您還應該在Google I/O 20092010的ListViews上明確查看無與倫比的Romain Guy的演示文稿 - 它們將爲您節省數小時的心痛,困惑,痛苦和性能調整。