我希望在一个活动中遍历我所拥有的所有Togglebutton并执行以下两项操作之一。在一种情况下,我想设置它们的值,在另一种情况下,我想要读取它们的值。这是最简单的方法来循环遍历孩子,尝试检查他们的类型togglebutton然后预先形成前面提到的任务?
我会使用这样的东西吗?
for (int i = 0; i < rootView.getChildCount(); i++)
if (Widget_Tag != null){
View Current_Widget = (View) rootView.getChildAt(i);
String Widget_Tag = (String) Current_Widget.getTag();
if (Widget_Tag.equals("MyToggleButton")) {
//do something
}
}
的 的 ** * *** 更新的 * ** * **
工作代码如下(感谢答案),我嵌套了另一个for循环,为我的ToggleButtons挖掘了一个子图层:
ViewGroup rootView = (ViewGroup) findViewById(R.id.LayoutHere);
for (int i = 0; i < rootView.getChildCount(); i++) {
ViewGroup nextLayout = (ViewGroup) rootView.getChildAt(i);
for (int i2 = 0; i2 < nextLayout.getChildCount(); i2++) {
View Current_Widget = nextLayout.getChildAt(i2);
if(Current_Widget instanceof ToggleButton)
{
//Do Something
}
}
}
答案 0 :(得分:1)
如果您使用ToggleButton
“MyToggleButton”为String
标记了这样的内容,那么您正在做的事情会有效:
ToggleButton button = getSomeToggleButton();
button.setTag("MyToggleButton");
如果您之前没有做过类似的事情,那么您的代码段将无效。您可以对每个instanceof
进行View
检查。
if(Current_Widget instanceof ToggleButton) {// or instanceof MyToggleButton if that is a class of yours...
//do something
}