我在 UI 中有一个 Android 传感器列表。我的整个应用程序是一个服务,每个传感器都可以通过发送 HTTP Post 请求来打开/关闭。例如,http://IPaddress:port/accelerometer/on 将打开加速度计。我的要求是在传感器打开时将列表条目的颜色更改为红色,并在传感器关闭时将其变为黑色。可以同时打开多个传感器。我使用以下代码,但请告诉我如何更改列表中的多个传感器条目?即,如果打开了 3 个传感器,列表中所有条目的颜色都应变为红色。提前致谢!
public View getView (int position, View convertView, ViewGroup parent)
{
View rowView = convertView;
TextViewHolder holder = null;
if(rowView == null)
{
LayoutInflater inflater = LayoutInflater.from(context);
rowView = inflater.inflate(layoutResourceId, parent, false);
holder = new TextViewHolder();
holder.txt = (TextView)rowView.findViewById(R.id.txtTitle);
rowView.setTag(holder);
}
else{
holder = (TextViewHolder) rowView.getTag();
}
if(values[position].contains(sensor) && state[position])
{
((TextView)rowView.findViewById(R.id.txtTitle)).setTextColor(Color.RED);
((TextView)rowView.findViewById(R.id.txtTitle)).setText(values[position]);
}
else if(values[position].contains(sensor) && (!state[position]))
{ ((TextView)rowView.findViewById(R.id.txtTitle)).setTextColor(Color.BLACK);
((TextView)rowView.findViewById(R.id.txtTitle)).setText(values[position]);
}
else
{
holder.txt.setTextColor(Color.BLACK);
holder.txt.setText(values[position]);
}
return rowView;
}
更新:我的列表中有 17 个传感器。但是有 2 个用于重力、线性加速度等的传感器。getView() 方法仅对前 10 个条目进行迭代并重复这些。