Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的ListActivity有什么问题?_Android_Listactivity_Android Arrayadapter - Fatal编程技术网

Android 我的ListActivity有什么问题?

Android 我的ListActivity有什么问题?,android,listactivity,android-arrayadapter,Android,Listactivity,Android Arrayadapter,我创建了一个扩展arrayAdapter的ListActivity;列表中的每个元素由2个标签和1个复选框组成。它工作得非常好,除非我取消选中其中一个列表框,并向上或向下滚动,使该检查不可用;问题是,当我返回之前未勾选的复选框时,它已被选中…我的listActivity有什么问题?这是基于ArrayAdapter的类: private class DescrAdapter extends ArrayAdapter<StatDescriptor>{ private Layout

我创建了一个扩展arrayAdapter的ListActivity;列表中的每个元素由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;
    }

}

感谢您的帮助。

您使用描述[position]来设置复选框的状态,但您可以翻转enabledStats[sortIndexes[position]]。因此,下次使用原始值重新创建项目视图时,您没有更改描述[位置]。

当我回来时,您是说按下backButton吗,还是只滚动?