Как получить доступ к методам фрагмента, если есть ссылка на View?

216
14 сентября 2017, 15:33

Доброго есть класс к примеру

public class ItemConsist extends Fragment {
     public int id = 1; //переменная или метод класса, пофиг
      public View onCreateView(LayoutInflat....){}
}

создаём экземпляр класса в контейнере, выводя его экземпляр на экран (несколько штук)

ItemConsist itemConsist = new ItemConsist();
layoutArrayItemConsist.addView(itemConsist.onCreateView(inflater, layoutArrayItemConsist, new Bundle()));

теперь мне нужно получить из этого контейнера значение public int id всех экземпляров ItemConsist. Там несколько экземпляров ItemConsist

int index = layoutArrayItemConsist.getChildCount();
        for (int i = 0; index > 0; ++i) {
            View view = layoutArrayItemConsist.getChildAt(i);
}

А как мне из этого View получить значение переменных и методов?

Answer 1

Что бы получить доступ к методам класса наследника надо просто привести объект класса предка к конкретному типу, методы которого Вы хотите использовать. Следует учесть, что downcast (приведение к типу наследника) опасная операция, поэтому, что бы избежать ClassCastException желательно провести проверку на соответствие типу:

View view = layoutArrayItemConsist.getChildAt(i);
if (view instanceof ItemConsist) {
    ((ItemConsist) view).someMethodOfItemConsist()
}
READ ALSO
Механизм загрузки изображения с Android в БД - api

Механизм загрузки изображения с Android в БД - api

Подскажите, возможно глупый вопрос но все же ответ на него найти я не могуМне нужно реализовать загрузку изображений на сервер, api свой на Java, взаимодействие...

217
Есть ли в Java класс, реализующий метод с рассчетом RipeMd-128

Есть ли в Java класс, реализующий метод с рассчетом RipeMd-128

Нужно рассчитать для байтового массива сумму по алгоритму RipeMd-128Никак не найду, как

163
Инициализация массива листов

Инициализация массива листов

Нужно задействовать массив листов при инициализации таким образом

170