刷新片段重新加载
在android应用程序中,我将数据从Db加载到Fragment的TableView 。 但是,当我Reload的fragment它显示了以前的数据。 我可以使用当前数据而不是以前的数据重新填充Fragment吗? 
我想你想刷新数据库更新片段的内容
如果是的话,分离片段并重新附加
 // Reload current fragment Fragment frg = null; frg = getSupportFragmentManager().findFragmentByTag("Your_Fragment_TAG"); final FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.detach(frg); ft.attach(frg); ft.commit(); 
Your_Fragment_TAG是您创build片段时所使用的名称
此代码用于支持库。
如果您不支持较旧的设备,只需使用getFragmentManager而不是getSupportFragmentManager
[编辑]
 这个方法需要Fragment有一个标签。 
 如果你没有,那么@ Hammer的方法就是你所需要的。 
这将刷新当前片段:
 FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.detach(this).attach(this).commit(); 
如果你没有片段标签,下面的代码适合我。
 Fragment currentFragment = getActivity().getFragmentManager().findFragmentById(R.id.fragment_container); if (currentFragment instanceof "NAME OF YOUR FRAGMENT CLASS") { FragmentTransaction fragTransaction = (getActivity()).getFragmentManager().beginTransaction(); fragTransaction.detach(currentFragment); fragTransaction.attach(currentFragment); fragTransaction.commit();} } 
 使用ContentProvider并使用“CursorLoader”加载数据。 有了这个架构,您的数据将自动重新加载数据库更改。 为您的ContentProvider使用第三方框架 – 您并不是真的想自己实现它… 
  MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG); getSupportFragmentManager().beginTransaction().detach(fragment).attach(fragment).commit(); 
 这只会在你使用FragmentManager初始化片段时才起作用。 如果你把它作为XML中的<fragment ... /> ,它将不会再次调用onCreateView 。 浪费了我30分钟的时间来解决这个问题。 
 我有同样的问题,但以上都没有为我的工作。 要么是有一个backstack问题(加载后,当用户按下它将再次去相同的片段),或者没有调用onCreaetView 
最后我做到了这一点:
 public void transactFragment(Fragment fragment, boolean reload) { FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); if (reload) { getSupportFragmentManager().popBackStack(); } transaction.replace(R.id.main_activity_frame_layout, fragment); transaction.addToBackStack(null); transaction.commit(); } 
好的一点是你不需要片段的标签或ID。 如果你想重新加载
 getFragmentManager().beginTransaction().detach(this).attach(this).commit();