动态地改变一个ListView里面一个TextView的文本颜色?
-
26-09-2019 - |
题
我试图创建一个游戏大厅的一个项目,我想本场比赛的状态文本是一个不同的颜色:红色的“[中]”的游戏和绿色的游戏的“[等待对于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);
希望帮助
不隶属于 StackOverflow