我有以下代码从DB中删除数据。 所以我删除数据,但我想从这里更新片段。
我怎么能改变片段?
public void refersh()
{
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(this).attach(this).commit();
}
这是我在Fragment中使用的代码(在按下按钮时)工作正常,但我不想点击refesh按钮来refesh页面。当DB自行更改时,我想要片段refesh。
Map <String, Object>
任何想法? 感谢
答案 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();
}
希望它适合你。