我试图创建一个游戏大厅的一个项目,我想本场比赛的状态文本是一个不同的颜色:红色的“[中]”的游戏和绿色的游戏的“[等待对于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添加到游戏列表:

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,当我创建了gameItem或当我添加到游戏列表。没有办法,我可以看到访问的TextView的属性。我看到的视图的文本设置(通过字符串“线路1”和“2号线”的映射,但是我不知道如何改变任何属性。

感谢您的帮助!

有帮助吗?

解决方案 2

在正确回答这个问题就是要遵循很多教程的一个在那里定制的ListView行,并使用自定义适配器为您的ListView。 这里的一个好。

其他提示

你创建的XML文件在你的TextView?如果是这样尝试:

TextView t = (TextView) findViewById(R.layout.yourTextView);
t.setTextColor(color);
t.setBackgroundColor(color);

希望帮助

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top