我正在嘗試爲一個項目創建一個遊戲大廳,並且我希望遊戲的狀態文本是不同的顏色:紅色代表「[IN PROGRESS]」遊戲,綠色代表「[等待x玩家]「。 ListView將填充數據,每個ListView項目將有一個遊戲ID,然後立即在該遊戲狀態的右側。動態更改ListView中TextView的文本顏色?
現在我基本上使用Hello ListView代碼來創建我的ListView。
(在構造函數)
ArrayList<HashMap<String, String>> gameList = new ArrayList<HashMap<String, String>>();
private ListView gamesListView;
private SimpleAdapter gameItems.
(在的onCreate())
gamesListView = (ListView) findViewById(R.id.listViewGames);
gameItems = new SimpleAdapter(this, gameList, R.layout.gamelistitem,
new String[] { "line1, "line2},
new int[] { R.id.tvGameID, R.id.tvGameStatus });
gamesListView.setAdapter(gameItems);
然後,我有一個刷新按鈕,從我們的數據庫中獲得數據。它會得到兩個字符串,一個用於遊戲的ID,另一個用於遊戲的狀態。如果遊戲狀態爲0,那麼它仍在等待玩家。如果遊戲狀態是1,那麼遊戲已經開始。所以,我創建了一個gameItem添加到gameList中:
HashMap<String, String> gameItem = new HashMap<String, String>();
gameItem.put("line1", gameIDString);
gameItem.put("line2", renderGameStatus(gameStatusString));
gameList.add(gameItem);
gameItems.notifyDataSetChanged();
private String renderGameStatus(String statusString) {
if (statusString.equals("0")) {
return "[Waiting for players]";
} else {
return "[IN PROGRESS]";
}
}
這就是我卡住的地方。當我創建gameItem或將其添加到gameList時,我不太瞭解如何更改特定的TextView。我沒有辦法看到訪問TextView的屬性。我看到如何設置視圖的文本(通過將字符串映射到「line1」和「line2」,但我不知道如何更改任何屬性。
感謝您的任何幫助!
不幸的是沒有...不會改變ListView中所有TextView的顏色嗎?我正在尋找改變ListView中每個特定TextView的顏色。 – Rockmaninoff 2010-11-18 23:29:15
嗯,現在我明白了..我不知道你是否已經嘗試過,但我記得有關實施BaseAdapter有完全控制創建的列表和東西的東西。可能你應該看看那個。祝你好運 – dds 2010-11-18 23:38:22