【发布时间】:2010-11-18 23:02:37
【问题描述】:
我正在尝试为一个项目创建一个游戏大厅,我希望游戏的状态文本为不同的颜色:红色表示“[IN PROGRESS]”游戏,绿色表示“[Waiting]”游戏对于 x 名玩家]"。 ListView 将填充数据,每个 ListView 项目将有一个游戏 ID,然后紧挨着该游戏状态的右侧。
现在我基本上是在使用 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]";
}
}
这就是我卡住的地方。我真的不明白如何在创建游戏项目或将其添加到游戏列表时更改特定的 TextView。我看不到访问 TextView 属性的方法。我看到了视图的文本是如何设置的(通过字符串到“line1”和“line2”的映射,但我不知道如何更改任何属性。
感谢您的帮助!
【问题讨论】:
标签: android textview android-listview