在我的列表視圖中我有一個複選框,當我選擇複選框前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