2015-08-01 3 views
0

У меня есть четыре вкладки в вкладке навигации, и каждая вкладка имеет фрагмент:Как обновить фрагменты под навигационной вкладкой

public Fragment getItem(int position) { 
      // getItem is called to instantiate the fragment for the given page. 
      // Return a PlaceholderFragment (defined as a static inner class below). 
      switch (position){ 
       case 0: 
        return new PostJob(); 
       case 1:{ 
        return new PostedJobHistory(); 
       } 
       case 2:{ 
        return new SearchCandidates(); 
       } 
       case 3:{ 
        return new EmployerSettings(); 
       } 
       default: 
        break; 
      } 
      return PlaceholderFragment.newInstance(position + 1); 
     } 

Я вводить данные задания в первой вкладке - фрагмент PostJob. и хочу обновить его во второй вкладке, когда я перейду к фрагменту истории вакансий.

Как я могу достичь этого. В закладке 1 я вводим данные в базу данных , а на вкладке 2 я читаю базу данных, чтобы показать опубликованную историю заданий, но опубликованная история заданий не обновляется.

ответ

0

использование этого

List<Fragment> fragmentsList = getSupportFragmentManager().getFragments(); 
    if (fragmentsList == null || fragmentsList.size() == 0) { 
     return; 
    } 
    for (Fragment fragment : fragmentsList) { 
     if (fragment instanceof PostedJobHistory) { 
      ((PostedJobHistory) fragment).yourUpdateMethod(); 
     } 
    } 
+0

где мне нужно добавить этот код? onTabReselected? – Bharthan

+0

, это должно вызываться из действия/фрагмента, содержащего ваши навигационные вкладки, чтобы вы могли либо использовать listenter, либо call ((YourActivityName) getActivity()). UpdateMethod() этот метод должен содержать код выше, если вкладка навигации находится в фрагменте, а затем использовать ((YourActivityName) getParentFragment()). UpdateMethod() назовите его, когда вам нужно обновить данные. –

+0

это сработало? статус обновления, и я проверю какое-то другое решение. –

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