[英]Android fragment refresh on back press
我有一個應用程序,它在列表視圖中顯示數據庫中的數據,當單擊列表視圖中的項目時,它會打開一個活動並顯示有關該特定項目的更多數據,包括刪除它的功能。 當它刪除它時,第一個片段將從后堆棧中取出,但是,列表視圖不會更新以顯示該刪除,當從后堆棧中拉出片段時,如何使該片段刷新它?
片段活動在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();
}
}
更新您的列表視圖適配器
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (listAdaptor != null){
listAdaptor.notifyDataSetChanged();
}
}
將此清單添加到您的活動中。
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。 按照片段的片段繼續工作。 注意不要忘記將廣告片段放回堆棧。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.