Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓:复选框问题?_Java_Android_Checkbox_Android Listview - Fatal编程技术网

Java 安卓:复选框问题?

Java 安卓:复选框问题?,java,android,checkbox,android-listview,Java,Android,Checkbox,Android Listview,我正在尝试选择列表中的所有复选框。为什么我得到的只是真实的复选框。代码是:- ListView listview = (ListView)findViewById(R.id.listview1); for(int i=0; i < listview.getChildCount(); i++) { AbsoluteLayout itemLayout = (AbsoluteLayout)listview.getCh

我正在尝试选择列表中的所有复选框。为什么我得到的只是真实的复选框。代码是:-

            ListView listview = (ListView)findViewById(R.id.listview1);
        for(int i=0; i < listview.getChildCount(); i++)
        {
            AbsoluteLayout itemLayout = (AbsoluteLayout)listview.getChildAt(i);
            CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.checkBox1);
            if(cb.isChecked())
            {
                cb.setChecked(false);
            }
            else
            {
                cb.setChecked(true);
            }
        }
ListView ListView=(ListView)findViewById(R.id.listview1);
对于(int i=0;i

提前谢谢。

我不确定我是否完全理解这个问题

但我相信:

CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.checkBox1);
将始终返回相同的复选框(id为checkBox1的复选框),即使列表中有多个复选框。

请尝试:

   for(int i=0; i < listview.getChildCount(); i++)
        {
            CheckBox cb = (CheckBox)listview.getChildAt(i).findViewById(R.id.checkBox1);  //if the child views are properly populated in each row item then on this particular positon ChBox will be found and instantiated
            if(cb.isChecked())
            {
                cb.setChecked(false);
            }
            else
            {
                cb.setChecked(true);
            }
        }
for(int i=0;i
您可以将其与两个按钮一起使用,如
selectall
&
unselectall

    public void checkallbtn_Click(View view)
{
    ListView lv = (ListView)findViewById(R.id.backuplist);
    CheckBox cb;
    try
    {
        for(int i=0;i<lv.getCount();i++)
        {
            cb = (CheckBox)lv.getChildAt(i).findViewById(R.id.checkBox1);
            if(!cb.isChecked())
            {
                cb.setChecked(true);
            }
        }

    }catch(Exception e) {e.printStackTrace();}
}
public void uncheckallbtn_Click(View view)
{
    ListView lv = (ListView)findViewById(R.id.backuplist);
    try
    {
        for(int i=0;i<lv.getCount();i++)
        {
            CheckBox cb = (CheckBox)lv.getChildAt(i).findViewById(R.id.checkBox1);
            if(cb.isChecked())
            {
                cb.setChecked(false);
            }
        }           
    }catch(Exception e) 
    {
        e.printStackTrace();
    }
}
public void checkallbtn\u单击(查看)
{
ListView lv=(ListView)findViewById(R.id.backuplist);
复选框cb;
尝试
{

对于(int i=0;iAbsoluteLayout不推荐使用)如果需要选中所有复选框,请不要使用它。如果需要,请只写cb.setChecked(true);不,不正确。请仔细查看代码。它作为布局访问每个列表项,并从中访问复选框。因此,您不能说它始终是同一个复选框。仅在其列表视图的顶部,复选框被修改。这就是我所指的。无需通过其布局访问复选框。每行都将视图表示为w洞。