在我的列表视图中,我有一个复选框,当我选择复选框时,首先需要选择10行,我做了这样的代码..但它选择除了前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();
}
答案 0 :(得分:0)
您的if条件错误if (i < firstListItemPosition || i > lastListItemPosition )
将其更改为
if (i > firstListItemPosition && i < lastListItemPosition )
答案 1 :(得分:0)
我认为第一个if if会检查所有复选框而没有你想要的复选框。
尝试将if语句更改为 我&gt; firstListItemPosition&amp;&amp;我&lt; lastListItemPosition
我希望我明白你想要做的正确。