0
我得到了一個使用SimpleAdapter顯示的元素列表,該列表獲取要顯示的元素列表。 對象列表中的元素(我傳遞給SimpleAdapter的元素)有一個字段,我想用它來區分元素的樣式(元素是TextView)以顯示,但我不知道如何去做。Android SimpleAdapter更改元素樣式
在此先感謝
Jaxer的
我得到了一個使用SimpleAdapter顯示的元素列表,該列表獲取要顯示的元素列表。 對象列表中的元素(我傳遞給SimpleAdapter的元素)有一個字段,我想用它來區分元素的樣式(元素是TextView)以顯示,但我不知道如何去做。Android SimpleAdapter更改元素樣式
在此先感謝
Jaxer的
你需要繼承適配器(或其子之一),並沿做這個東西線在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 2009和2010的ListViews上明確查看無與倫比的Romain Guy的演示文稿 - 它們將爲您節省數小時的心痛,困惑,痛苦和性能調整。