Доброго
есть класс к примеру
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 получить значение переменных и методов?
Ответ
Что бы получить доступ к методам класса наследника надо просто привести объект класса предка к конкретному типу, методы которого Вы хотите использовать. Следует учесть, что downcast (приведение к типу наследника) опасная операция, поэтому, что бы избежать ClassCastException желательно провести проверку на соответствие типу:
View view = layoutArrayItemConsist.getChildAt(i);
if (view instanceof ItemConsist) {
((ItemConsist) view).someMethodOfItemConsist()
}
Комментариев нет:
Отправить комментарий