2016-04-20 2 views
0

Я создал приложение, которое выполняет операцию, которая анализирует XML-файл (XMLPullParser) и показывает данные в Listview. Оно работает. В том же приложении у меня есть другое действие, в котором я помещаю разные фрагменты в зависимости от выбранного элемента навигационного ящика. Теперь, мой вопрос: как я могу использовать данные, полученные в активности Parsing, и управлять ими внутри фрагмента?Как разобрать фрагмент?

+0

Вы можете разместить свой код? –

ответ

0

Вам не нужно отправлять все проанализированные данные фрагменту.

Вы можете написать собственный класс Handler или Manager, чтобы проанализировать файл и сохранить его в памяти (это может быть материал Singleton). После того как вы разобрали его, вам просто нужно передать идентификатор предмета, и Fragment может получить его из вашего Handler.

Вы можете передать все, что вам нравится в Fragment, как это:

public static YourFragment newInstance(int index) { 
    YourFragment f = new YourFragment(); 
    Bundle args = new Bundle(); 
    args.putInt("index", index); 
    f.setArguments(args); 
    return f; 
} 

//To get out 
//... 
Bundle args = getArguments(); 
int index = args.getInt("index", 0); 
//... 
+0

Спасибо, ГаборНовак за быстрый ответ. Поэтому у меня уже есть мой XMLPullParserHandler. Итак, если я правильно его получил, я добавлю код, который вы разместили внутри моего обработчика. передать данные моему фрагменту. что, если я хочу передать весь адаптер или список (созданный в активности парсера) на мой фрагмент? мне нужно изменить индекс параметра int с помощью адаптера? спасибо – NioAnt

+0

Я думаю, было бы проще реализовать пользовательский класс 'Manager', который сможет анализировать xml. Нехорошо разбирать xml внутри 'Activity'. После того, как вы разобрались в другом классе, вы сможете сохранить его в памяти от «MainActivity» и передать только свой индекс «Fragment». – GaborNovak

Смежные вопросы