【问题标题】:Dynamically change text color of a TextView inside a ListView?动态更改 ListView 内 TextView 的文本颜色?
【发布时间】: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


    【解决方案1】:

    您是否在 XML 文件中创建文本视图?如果是这样,请尝试:

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

    希望对你有帮助

    【讨论】:

    • 很遗憾没有……那不只是改变ListView中所有TextView的颜色吗?我正在寻找更改 ListView 中每个特定 TextView 的颜色。
    • 嗯,现在我明白了。我不确定你是否已经尝试过,但我记得一些关于实现 BaseAdapter 以完全控制创建的列表和东西的事情。也许你应该看看那个。祝你好运
    【解决方案2】:

    此问题的正确答案是遵循有关自定义 ListView 行的众多教程之一,并为您的 ListView 使用自定义适配器。 Here's 不错。

    【讨论】:

      猜你喜欢
      • 2012-09-23
      • 2011-10-31
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多