从DB中删除数据时如何refesh片段

时间:2017-06-19 11:52:35

标签: java android android-fragments

我有以下代码从DB中删除数据。 所以我删除数据,但我想从这里更新片段。

我怎么能改变片段?

 public void refersh()
    {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.detach(this).attach(this).commit();
    }

这是我在Fragment中使用的代码(在按下按钮时)工作正常,但我不想点击refesh按钮来refesh页面。当DB自行更改时,我想要片段refesh。

Map <String, Object>

任何想法? 感谢

4 个答案:

答案 0 :(得分:0)

你在一次提交中再次分离和附加,所以它什么都不做。使它成为两个提交

public void refersh(){
    FragmentTransaction ft1 = getFragmentManager().beginTransaction();
    ft1.detach(this).commit();
    FragmentTransaction ft2 = getFragmentManager().beginTransaction();
    ft2.attach(this).commit();
}

您也可能使用getSupportFragmentManager代替getFragmentManager

它可能不是最好/最有效的解决方案,但你发布了这个小片段......

答案 1 :(得分:0)

简单来说,您可以使用:

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(this).attach(this).commit();

答案 2 :(得分:0)

我认为你想在DB数据更新时刷新片段内容

如果是这样,分离片段并再次附加

// Reload current fragment
   Fragment f1 = null;
   f1 = getSupportFragmentManager().findFragmentByTag("Fragment_TAG");
   final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
   ft.detach(f1);
   ft.attach(frg);
   ft.commit();

Fragment_TAG是您在创建片段时为其提供的名称

答案 3 :(得分:0)

刷新当前片段内容,您可以在方法refresh()

中使用以下代码
public void refresh()
   {
            Fragment fragment = null;
            fragment = new Current_Fragment_Name(); //replace the  Current_Fragment_Name with your current fragment name
            FragmentTransaction ft =  getActivity().getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.content_frame, fragment);
            ft.commit();
   }

希望它适合你。