Цикл по тумблерам в Activity - PullRequest
0 голосов
/ 29 мая 2011

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

Могу ли я использовать что-то подобное?

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

****** UPDATE ******

Работая следующим образом (спасибо за ответ), я вложил еще один цикл 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
            }                         
      }         
    }

1 Ответ

1 голос
/ 29 мая 2011

То, что вы делаете, будет работать, если вы пометите свои 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
}
...