как перезагрузить содержимое фрагмента при повторном выборе вкладки в fragmenttabhost android

Я создаю вкладку в активности фрагмента. И я создал фрагмент, который динамически загружает содержимое для каждой вкладки при выборе вкладки. Я использую asynctask для загрузки содержимого вкладки. Поскольку я загружаю содержимое вкладки, когда она выбрана, я создал один фрагмент в качестве содержимого для вкладки. Также мои вкладки создаются динамически.

Мой вопрос заключается в том, что когда я выбираю любую вкладку в первый раз, содержимое загружается путем выполнения асинтаска, но когда я выбираю вкладку, которая была выбрана ранее, содержимое не меняется, а содержимое исходной вкладки, которая была выбрана для первого отображаются время.

это метод onCreateView во фрагменте, содержимое которого загружается при выборе вкладки:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

         View rootView =  inflater.inflate(R.layout.fragment_games, container, false); 

        return rootView;
    }

это метод onActivityCreated, где я вызываю асинтаск

public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

            new FetchMenuTask().execute();


    }

что мне делать, чтобы изменить содержимое при повторном выборе вкладки


person Ankita Deshmukh    schedule 06.11.2013    source источник


Ответы (1)


Вы должны поместить свой метод asyntask в onCreateView(). Затем каждый раз, когда фрагмент выбирается (добавляется/заменяется), ваша асинхронная задача будет вызываться в onCreateView(), после чего вы можете обновлять представление новыми данными в onPostExecute().

person Jackie    schedule 06.11.2013
comment
Это не работает. Я попытался вызвать асинтаск в методе onCreateView. - person Ankita Deshmukh; 06.11.2013
comment
Вы должны поместить журнал в жизненный цикл каждого фрагмента, чтобы убедиться, какой из них вызывается каждый раз, когда вы повторно выбираете вложенную вкладку. Затем поместите туда AsynTask.execute(). - person Jackie; 07.11.2013