我有方法选择listView中的所有复选框,有时复选框不起作用。 当我滚动到最后一个项目并返回时会发生这种情况。
此活动中的metod调用:
public void setAllBoxesChecked(boolean value)
{
for(int i=0; i < lvSklepy.getCount(); i++)
{
View view = lvSklepy.getAdapter().getView(i, null, lvSklepy);
CheckBox cb = (CheckBox) view.findViewById(R.id.cb_sklep);
cb.setChecked(value);
}
}
适配器: 第一项是选中所有复选框的复选框。
public View getView(int position,View convertView, final ViewGroup parent)
{
....
final CheckBox chboxShop = (CheckBox) convertView.findViewById(R.id.cb_sklep);
if(position == 0)
{
chboxShop.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
Boolean blnObj = new Boolean(isChecked);
callOnClickListener(RES_CHECKBOX, blnObj, chboxShop);
}
});
rLayout = R.layout.ad_preferowane_sklepy;
}
else
{
final ImageLayout llImage = (ImageLayout) convertView.findViewById(R.id.il_image);
chboxShop.setText(item.nazwaPelna);
llImage.imageFromWeb(item.logoUrl);
}
...
}
答案 0 :(得分:0)
在具有列表视图布局的XML文件中添加此代码
android:descendantFocusability="blocksDescendants"
假设您有一个带有文本视图的相对布局 -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants">
<TextView
android:id="@+id/look_separator"
style="?android:attr/listSeparatorTextViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
/>
<CheckBox
android:id="@+id/look_checkbox"
android:layout_width="wrap_content"
android:layout_alignParentEnd="true"
/>