ListView selecioint所有复选框

时间:2014-04-19 11:59:32

标签: android listview checkbox android-adapter

我有方法选择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);


        }
...
}

1 个答案:

答案 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"

  />