java - 在执行某些操作后设置 ListView 背景颜色

标签 java android listview android-listview

我基本上想知道更改 android 中 ListView 颜色的最佳方法。这是所发生情况的基本解释,我获取列表的数据并填充它,然后我针对 ListView 的文本运行情绪分析 api,在情绪收集的 onPostExecute 中,然后我想更改颜色 ListView 绿色表示正,红色表示负。

我已经在 onPostExecute 方法中检查了我的字符串列表,并像这样添加了正值、负值和中性值。

                for(int index = 0; index<sentiments.size();index++)
        {
            if(sentiments.get(index).contains("positive"))
            {
                occurrencesPos++;
                      //ViewTweet.getChildAt(index).setBackgroundColor(Color.GREEN);

            }
            if(sentiments.get(index).contains("negative"))
            {
                occurrencesNeg++;

            }
            if(sentiments.get(index).contains("neutral"))
            {
                occurrencesNeu++;
            }

请注意,注释掉的行对我不起作用,因为它只适用于可见实体的子项,即前 5 个实体,但有时我的列表会超过 50 个。然而,如果我只搜索 5 个数据项的列表,它就会达到所需的效果。

列表填充如下:这是在 onPostExecute 方法中的单独 aSyncTask 中执行的。

    ArrayList<Map<String, String>> list = buildData();
       String[] from = { "name", "content" };
       int[] to = { android.R.id.text1, android.R.id.text2 };

       SimpleAdapter adapter = new SimpleAdapter(activity, list,
           layout.list_layout, from, to);
       setListAdapter(adapter);




    // Creation of content to be added to be displayed in list
     private ArrayList<Map<String, String>> buildData() {
       ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();
       for(int i = 0;i<tweetContent.size();i++)
       {
       list.add(putData("@"+usernames.get(i),tweetContent.get(i)));
       }
       return list;
     }

     private HashMap<String, String> putData(String string, String string2) {
       HashMap<String, String> item = new HashMap<String, String>();
       item.put("name", string);
       item.put("content", string2);
       return item;
     }

简而言之,发生了什么,使用 api 调用从 twitter 获取推文,将值传递到两个字符串列表 tweetcontent 和 username,然后用于填充列表,填充列表后,我调用第二个异步任务,该任务调用情感分析 api,我将结果放入一个新的字符串列表中,并计算 pos、neg、neu 出现的数量以传递给图表,但我想更新列表颜色以匹配这些正负值和中性值第二个onPostExecute,这可能吗?

最佳答案

为什么不创建一个数组并将每个项目的颜色存储在其中,然后在获取 View 中将该颜色指定为背景颜色。

关于java - 在执行某些操作后设置 ListView 背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22618698/

相关文章:

java - 从其他变量值创建变量名

android - NFC 服务具体何时停用?

java - Listview 的项目在 android 中不会显示为真实列表

java - 如何更改 esapi 属性中的 header 长度

java - 具有多个主机的 RMI

java - res-long-hdpi 的屏幕尺寸

Android - ListView 被填充两次

android - 如何每10秒刷新一次Android ListView

java - IPC:为每个请求连接还是保持套接字打开?

android - 如何在Android Studio中扩展C++宏?