簡體   English   中英

按下后刷新Android片段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM