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 エントリに対してのみ反復し、それらを繰り返します。