当蓝牙获得新读取时更新 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;
每次读取来自蓝牙时,我都会尝试更新每个元素,我发现了这个
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;