Выполните итерацию по каждому виджету, объявленному в XML, и выполните действие при разработке на Java и Android

#java #android #xml

#java #Android #xml

Вопрос:

Для разработки на Android, допустим, я объявил несколько ImageButtons в XML

В моем файле .java, как я могу сделать что-то вроде:

 foreach (ImageButton with attribute="xyz") {do this}
  

Ответ №1:

Просто выполните итерацию по всем потомкам контейнера представления и выполните действие для каждого представления, которое удовлетворяет некоторым условиям:

 private void iterateImages(ViewGroup group) {
    for (int i = 0, n = group.getChildCount(); i < n;   i) {
        View child = group.getChildAt(i);
        if (child instanceof ViewGroup) {
            iterateImages((ViewGroup)child);
        } else if (child instanceof ImageView) {
            ImageView image = (ImageView)child;
            if ( /* attribute"xyz" */ ) {
                // do this
            }
        }
    }
}