Изменение пользовательского цвета gridview bg

Как я могу динамически изменить цвет фона пользовательской сетки? У меня есть gridview и класс, который включает в себя состояние устройств. Поэтому, если устройство активно, его цвет в представлении сетки должен быть зеленым.

Я могу получить состояние каждого устройства, но не знаю, как и где реализовать это фоновое изменение. Я пытался изменить свой класс CustomGridView, но это не сработало правильно. Я буду признателен, если вы, ребята, покажете мне или подскажете, как сделать это правильно.

ArrayList<IpPhone> data = new ArrayList<IpPhone>();

public CustomGridViewAdapter(Context context, int layoutResourceId, ArrayList<IpPhone> data) {
    super(context, layoutResourceId, data);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    this.data = data;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    RecordHolder holder = null; 
    ViewGroup vg = parent;

    if (row == null) {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);

        holder = new RecordHolder();
        holder.txtTitle1 = (TextView) row.findViewById(R.id.txt_phoneNumber);
        holder.txtTitle2 = (TextView) row.findViewById(R.id.txt_ipAddress);
        holder.txtTitle3 = (TextView) row.findViewById(R.id.txt_phoneState);

        row.setTag(holder);
    } 
    else {

        holder = (RecordHolder) row.getTag();
    }

    //I tried this if else to change bg colors but it didnt work

    if(data.get(position).state == "0")
    {
        row.setBackgroundColor(Color.BLUE);
    }
    else if (data.get(position).state == "1"){
        row.setBackgroundColor(Color.RED);
    }

    IpPhone item = data.get(position);
    holder.txtTitle1.setText(item.getphoneNumber());
    holder.txtTitle2.setText(item.getipAddress());
    holder.txtTitle3.setText(item.getphoneLocation());
    return row;

}

Вывод


person mrgenco    schedule 05.04.2014    source источник
comment
немного погуглив, проверьте это   -  person Erik    schedule 05.04.2014
comment
нет ничего другого в ссылке, которую вы предложили, сэр. Я уже сделал это в своем коде.   -  person mrgenco    schedule 05.04.2014
comment
просто мысль, так как адаптер повторно использует строки, поместите это, прежде чем проверять, какой цвет поставить. row.setBackgroundColor(ПО УМОЛЧАНИЮ); Таким образом, вы сбрасываете строку перед ее изменением. Возможно, вам это не нужно, зависит от того, может ли состояние == X быть больше 1 или 2   -  person Erik    schedule 05.04.2014
comment
спасибо, сэр :) я изменил состояние == X на state.equals(X), и это работает..   -  person mrgenco    schedule 05.04.2014
comment
да, конечно equals для сравнения строк. не видел, молодец   -  person Erik    schedule 05.04.2014