2016-08-17 2 views
0

У меня есть приложение, которое отображает данные из базы данных в виде списка, при нажатии элемента в виде списка открывается действие и отображает больше данных об этом конкретном элементе, включая возможность удаления Это. когда он удаляет его, первый фрагмент выводится из заднего стека, однако просмотр списка не обновляется, чтобы показать удаление, как я могу заставить его обновить его, когда он вытащит из заднего стека?Обновление фрагмента фрагмента Android на заднем пульте

активность фрагментов имеет это в onBackPressed

@Override 
    public void onBackPressed() { 
     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     if (fragmentManager.getBackStackEntryCount() != 0) { 
      fragmentManager.popBackStack(); 
     } 
     else if (drawer.isDrawerOpen(GravityCompat.START)) { 
      drawer.closeDrawer(GravityCompat.START); 
     } else { 
      super.onBackPressed(); 
     } 
    } 
+0

Вы можете переопределить это onResume) '' метод (и обновление списка есть позвонив по телефону 'notifyDataSetChanged()', если у вас есть какой-то 'ListAdapter' или что-то. Попробуйте это и посмотрите, работает ли это. – Vucko

+0

http://stackoverflow.com/questions/26606527/android-refresh-a-fragment-list-from-its-parent-activity – ViramP

ответ

2

обновления ваш ListView адаптер

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
super.onViewCreated(view, savedInstanceState); 
if (listAdaptor != null){ 
    listAdaptor.notifyDataSetChanged(); 
} 
} 
+1

, если вы считаете полезным принять ответ – Don

+0

Извините, что мне с этим делать? – user6548194

0

Добавить к вашему у слушателя в вашей деятельности.

getSupportFragmentManager().addOnBackStackChangedListener(getListener()); 

    private FragmentManager.OnBackStackChangedListener getListener() { 
     FragmentManager.OnBackStackChangedListener result = new FragmentManager.OnBackStackChangedListener() { 
      public void onBackStackChanged() { 
       FragmentManager manager = getSupportFragmentManager(); 

       if (manager != null) { 
        manager.findFragmentById(R.id.mall_fragment_container).onResume(); 
       } 
      } 
     }; 

     return result; 
    } 

он будет вызывать для фрагмента onresume при изменении в backstack. Сделайте свою работу в onresume вашего фрагмента. Примечание не забыл фрагмент объявления для backstack.

Благодаря

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