Что не так с моей ListActivity? - PullRequest
0 голосов
/ 13 октября 2011

Я создал ListActivity, расширяющий arrayAdapter; каждый элемент списка состоит из 2 ярлыков и 1 флажка. Он прекрасно работает, за исключением случаев, когда я снимаю галочку с одного из этих списков и прокручиваю вверх или вниз, делая эту проверку недоступной; проблема в том, что когда я возвращаю ранее не отмеченный флажок, он проверяется ... что не так с моей listActivity? Это класс на основе ArrayAdapter:

private class DescrAdapter extends ArrayAdapter<StatDescriptor>{
    private LayoutInflater  inflater;
    private final StatDescriptor[] descriptions;
    private int layoutId;


    public DescrAdapter(Context context, int res,StatDescriptor[] objects) {
        super(context,res , objects);
        this.inflater=LayoutInflater.from(context);
        this.descriptions=objects;
        this.layoutId=res;
    }

    public View getView(final int position, View rowView, ViewGroup parent) {
        rowView = (RelativeLayout) inflater.inflate(layoutId, null);
        TextView textName = (TextView) rowView.findViewById(R.id.StatName);
        textName.setText(descriptions[position].getName());
        TextView textDescr=(TextView) rowView.findViewById(R.id.StatDescr);
        textDescr.setText(descriptions[position].getDescription());
        CheckBox checkEnabled=(CheckBox) rowView.findViewById(R.id.checkStat);
        checkEnabled.setChecked(descriptions[position].isEnabled());
        checkEnabled.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                enabledStats[sortIndexes[position]]=!enabledStats[sortIndexes[position]];
            }
        });
        return rowView;
    }

}

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 13 октября 2011

Вы используете descriptions[position] для установки состояния флажка, но вы переворачиваете enabledStats[sortIndexes[position]]. Поэтому в следующий раз представление элемента воссоздается с исходным значением, которое вы не изменили (descriptions[position]).

...