在我的列表视图中我有一个复选框,当我选择复选框前10行需要选择,我做了这样的代码..但它是选择除了第一个10行......任何人都可以帮助我......我需要在这里做些改变。Android Listview选择前10项
if (checked)
{
// Toast.makeText(MyList.this, "Checked.", Toast.LENGTH_LONG).show();
//for(int i=0; i<lv.getChildCount();i++)
for(int i=0; i<lv.getAdapter().getCount();i++)
{
int m = 1;
final int firstListItemPosition = lv.getFirstVisiblePosition();
//final int firstListItemPosition = (int) lv.getItemAtPosition(m);
final int lastListItemPosition = firstListItemPosition + 9;
if (i < firstListItemPosition || i > lastListItemPosition) {
View vii = lv.getAdapter().getView(i, null, lv);
//return listView.getAdapter().getView(pos, null, listView);
CheckBox cb = (CheckBox)vii.findViewById(R.id.selected);
cb.setChecked(true);
} else {
final int childIndex = i - firstListItemPosition;
CheckBox cb = (CheckBox)lv.getChildAt(childIndex).findViewById(R.id.selected);
cb.setChecked(true);
}
//Toast.makeText(MyList.this,s, Toast.LENGTH_LONG).show();
}
将您的if条件改为if(i> firstListItemPosition || i
位置也可能不正确。 getFirstVisiblePosition()可能或可能不是您想要的位置。如果用户选择位置2,那么这将是一个错误!您可以将每个复选框的位置保存到持有者,然后在用户滚动时设置/取消设置,以便用户可以从任何可见复选框启动。如果用户检查一个不同的,清除并重新设置10. – CmosBattery
不,它不工作... – Jocheved