Прокрутите Togglebuttons в Activity

Я хочу перебрать все Togglebuttons, которые у меня есть, в одном действии и сделать одну из двух вещей. В одном случае я хочу установить их значения, в другом случае я хочу прочитать их значения. Является ли самый простой способ сделать это, чтобы перебрать дочерние элементы, попытаться проверить их тип на наличие переключателя, а затем выполнить ранее упомянутые задачи?

Буду ли я использовать что-то вроде этого?

     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
            }                         
      }         
    }

person Toclmi    schedule 29.05.2011    source источник


Ответы (1)


То, что вы делаете, будет работать, если вы пометили свои ToggleButton с помощью String «MyToggleButton» следующим образом:

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
}
person nicholas.hauschild    schedule 29.05.2011
comment
Спасибо за помощь. Думаю, я немного перешагнул свои границы, этот код был из связанного поста, и я не был уверен, что он полностью для меня. С вашим ответом я думаю, что я правильно настроил его, но у меня проблемы с rootView, я думал, что это может быть стандартная функция, но ее нужно определить. Когда я пытаюсь определить его, он ищет ViewGroup, но мне не удается правильно настроить rootView как ViewGroup. - person Toclmi; 30.05.2011
comment
Разобрался, получал только 1-й уровень детей, пришлось копать еще один уровень на основе моих макетов. Обновлен вопрос, чтобы отразить рабочую информацию - person Toclmi; 30.05.2011