我正在尝试为一个项目创建一个游戏大厅,并且我希望游戏的状态文本是不同的颜色:红色代表“[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