0

在基本适配器中,包含多个视图以及复选框,

如果我选择复选框,一个位置正在获取,如果我滚动并取消选择相同的复选框,则另一个位置正在获取,但我需要相同的位置..如何获得这个?

4

2 回答 2

0

这是因为您的适配器正在回收视图,而您没有正确处理它。确保您正在使用setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)setChoiceMode(ListView.CHOICE_MODE_SINGLE)

如果您使用自定义列表项,请参考我的教程:CUSTOM LISTVIEW WITH ABILITY TO CHECK Items

于 2012-11-01T10:55:40.267 回答
0

在您的适配器类中

 public View getView(final int position, final View convertView, ViewGroup parent) {
        View row = super.getView(position, convertView, parent);
if (row == null) 
{
    LayoutInflater inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    row = inflater.inflate(R.layout.reports_list, null);
}

CheckBox cBox=(CheckBox)row.findViewById(R.id.cb1);

cBox.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
    if(cBox.isChecked())
    {
       System.out.println("position "+reportslistview.getPositionForView(cBox));
    }
}
});
于 2012-11-01T10:57:09.590 回答