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洞。