在基本适配器中,包含多个视图以及复选框,
如果我选择复选框,一个位置正在获取,如果我滚动并取消选择相同的复选框,则另一个位置正在获取,但我需要相同的位置..如何获得这个?
这是因为您的适配器正在回收视图,而您没有正确处理它。确保您正在使用setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)
或setChoiceMode(ListView.CHOICE_MODE_SINGLE)
如果您使用自定义列表项,请参考我的教程:CUSTOM LISTVIEW WITH ABILITY TO CHECK Items
在您的适配器类中
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));
}
}
});