0

我正在创建一个游戏,这是我用来显示包含用户名、分数、日期等的游戏列表的代码。但是如何获取 TextViews tv_playerScore 和 tv_opponentScore 的值,以便我可以比较它们并更改他们的文本颜色?因为我想要的是 parseInt 并查看哪个具有最高值并将其 textcolor 设置为绿色,而将其他 textcolor 设置为红色。

private void showGames(JSONArray games) throws JSONException {
    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
    HashMap<String, String> map = new HashMap<String, String>();
    for (int i = 0; i < games.length(); i++) {

        map.put("challenger", games.getJSONObject(i).getString("challengerName"));
        map.put("active", games.getJSONObject(i).getString("active"));
        map.put("opponent", games.getJSONObject(i).getString("opponentName"));
        map.put("date", games.getJSONObject(i).getString("date"));
        map.put("gameID", games.getJSONObject(i).getString("gameID"));
        map.put("amount", games.getJSONObject(i).getString("amount"));
        map.put("playerScore", games.getJSONObject(i).getString("challengerScore"));
        map.put("opponentScore", games.getJSONObject(i).getString("opponentScore"));


        if (Integer.parseInt(games.getJSONObject(i).getString("active")) == 2) {

            mylist.add(map);
        }

        map = new HashMap<String, String>();
    }

    SimpleAdapter sadapter = new SimpleAdapter(this, mylist, R.layout.list, new String[] 
            {"amount", "active", "gameID", "challenger", "opponent", "date", "playerScore", "opponentScore"},
            new int[] {R.id.tv_amount, R.id.tv_activte, R.id.tv_gameID, R.id.tv_player, R.id.tv_opponent, R.id.tv_date, R.id.tv_playerScore, R.id.tv_opponentScore}); 


    listView.setAdapter(sadapter);

}

4

2 回答 2

0

如果要获取一个textview的值,必须使用Activity中的findViewById函数。

TextView tv_playerScore = (TextView) findViewById (R.id.tv_playerScore);

如果 showGames() 方法不是继承自 Activity(或类似)的类,您应该将视线元素的 setter 注入给那些想要访问的人。

比较:

tv_playerScore.getText().toString().compareTo(tv_opponentScore.getText().toString());

最后,改变颜色:

tv_playerScore.setTextColor(Color.CYAN);

问候。

于 2012-04-26T14:01:00.163 回答
0

我认为你应该仔细看看 ListViews 是如何工作的(http://developer.android.com/resources/tutorials/views/hello-listview.html

简而言之,我猜你必须编写自己的 Adpater 类(例如扩展 SimpleAdapater)并重写它的 getView 方法。在这里,您可以根据相应的值设置文本视图的颜色。(我认为在每次绘制列表元素时对它们进行排序而不是检查它们是有意义的......

于 2012-04-26T14:11:17.223 回答