私のリストビューではチェックボックスがあり、チェックボックスをオンにすると最初に10行を選択する必要があります。このようなコードを実行しましたが、最初のものを除くすべての行の残りを選択しています10行..誰でも私を助けることができます。私はここで何をする必要がありますか?Androidリストビュー最初の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