当蓝牙获得新读取时更新 ListView 背景颜色

Update ListView background color when bluetooth get a new read

每次读取来自蓝牙时,我都会尝试更新每个元素,我发现了这个

deviceListAdapter = new ArrayAdapter<String>(view.getContext(),
            android.R.layout.simple_list_item_1, mylist) {
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = super.getView(position, convertView, parent);

               if(getItem(position).startsWith("something"))
                {
                    // do something change color
                    row.setBackgroundColor (Color.GREEN); // some color
                }
                else
                {
                    // default state
                    row.setBackgroundColor (Color.RED); // default coloe
                }               
            return row;
        }
    };

它确实会更新颜色,但我有一个这样的列表

列表是通过使用 Volley 调用服务器来加载的。

事情是当蓝牙接收数据时,检查他的id是否存在于ListView中并将颜色更新为绿色。

我这还有可能吗?我可以这样做吗?

您需要做的就是更新 myList 中的项目,然后调用 deviceListAdapter.notifyDataSetChanged() 刷新列表视图。

所以我找到了条件语句中缺少的内容,以查看是否已读取 id。

我必须添加 testArray.contains() 那部分它按预期工作。

if(testArray.contains(getItem(position)))
    {
      row.setBackgroundColor (Color.GREEN); // some color
    }
    else
    {
      row.setBackgroundColor (Color.RED); // default coloe
    }
                   
    return row;