显示Android中异常行为的复选框

显示Android中异常行为的复选框,android,android-listview,Android,Android Listview,下面我已经写了我的代码,实际上当我滚动我的listview时,复选框占据了它原来的位置,任何代码的帮助都将不胜感激 cp.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub cp.setChecked(true); cx.setChecked(false);

下面我已经写了我的代码,实际上当我滚动我的listview时,复选框占据了它原来的位置,任何代码的帮助都将不胜感激

 cp.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
        // TODO Auto-generated method stub
        cp.setChecked(true);
        cx.setChecked(false);

        ck.setChecked(false);
        int a=1;

        String c=getListView().getItemAtPosition(position).toString();
        updatetable(c, "FULL");
        //Toast.makeText(getApplicationContext(), c+"full", Toast.LENGTH_LONG).show();
        // Toast.makeText(getApplicationContext(), "year", Toast.LENGTH_LONG).show();
    }
});

 cx.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {

        // TODO Auto-generated method stub
        cx.setChecked(true);
        cp.setChecked(false);
        ck.setChecked(false);
        int a=1;
        String c=getListView().getItemAtPosition(position).toString();
        updatetable(c, "CRITICAL");

        //Toast.makeText(getApplicationContext(), c+"ok", Toast.LENGTH_LONG).show();
    }
});

 ck.setOnClickListener(new OnClickListener() {

        public void onClick(View v)  {
            ck.setOnCheckedChangeListener(null);
            // TODO Auto-generated method stub
            ck.setChecked(true);
            cp.setChecked(false);
            cx.setChecked(false);
            int a=1;
    String c=getListView().getItemAtPosition(position).toString();
    updatetable(c, "FINISH");
            //Toast.makeText(getApplicationContext(), c+"fineshed", Toast.LENGTH_LONG).show();
        }
    });

你的问题不清楚,但我想我明白了

我认为这不是复选框的问题。我认为你的适配器有问题

public class MyAdapter extends BaseAdapter {
    private List<Something> mList;
    private Context mContext;

    public MyAdapter(Context context, List<Something> list) {
        mContext = context;
        mList = list;
    }

    @Override
    public int getCount() {
        return mList.getSize();
    }

    @Override
    public Object getItem(int position) {
        return mList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.row_layout, null);
        }

        CheckBox checkbox = (CheckBox) convertView.findViewById(R.id.checkbox);
        /* Here you should set your checkbox state */
    }
}

我没有你的代码,所以上面的例子尽可能一般。如果您让我们查看代码,我们可以帮助您。

您的问题不清楚!!!没必要在那里大喊大叫。有相当多的帖子与这个问题有关。请检查:)您的onClick方法应该具有覆盖注释。此外,一点重构也会有很大帮助。
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.row_layout, null);
        }

        CheckBox checkbox = (CheckBox) convertView.findViewById(R.id.checkbox);
        checkBox.setChecked(states.get(position));
    }