2013-07-16 3 views
7

Я создаю приложение, которое отображает данные в ListView. Данные подразделяются на два типа («Популярные», «Избранное»). У меня есть одно действие и два фрагмента. Фрагменты отображает список элементов, основанных на их категории. Для этого я использовал ListView. Затем у меня есть два фрагментарных фрагмента, которые в точности похожи друг на друга по дизайну, но имеют разные идентификаторы вида, т. Е. TvId1, tvId2 для TextViews. Коды в Фрагментах отличаются только ссылкой на соответствующие макеты и представления в макете. Я получаю данные из URL-адреса, который находится в формате JSON. Но в каждой категории есть другой набор URL, который создает ту же структуру только разные данные. Затем я разбираю соответствующий URL-адрес для каждого фрагмента и соответствующим образом заполняю ListView. Все работает до сих пор.Android - Несколько экземпляров фрагментации?

Что я хочу знать, есть ли способ, которым я могу просто использовать один фрагмент и использовать его два раза с различным набором данных в каждом? Таким образом, мне не нужно создавать другой фрагмент, если появится новая категория.

Цените любую помощь.

ответ

10

Конечно, вы можете это сделать. На самом деле вы должны сделать это так.

Когда вы создаете фрагмент, не используйте new Fragment(); Создайте статическую функцию newInstance, которая принимает данные в качестве аргумента.

public static MyFragment newInstance(int type) { 
    MyFragment fragment = new MyFragment(); 
    Bundle args = new Bundle(); 
    args.putInt("type", type); 
    fragment.setArguments(args); 
    return fragment; 
} 

И тогда вы можете получить тип на OnCreate() метод с использованием ниже:

getArguments().getInt("type"); 

И тогда вы получите тип, вы можете назвать ваш вебсервис соответственно, а затем вы можете установить Views соответственно.

+0

Большое спасибо. Работал как шарм. Спасло меня много неприятностей. Я проголосую, но пока у меня недостаточно репутации. – user2469412

+0

Нет проблем. :) Счастливое кодирование. – tasomaniac

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