我做得比较类似的东西,但我不知道如何清洁是这样的:
在DownloadsFragment
创建一个全局Fragment
:
public static Fragment myFragment;
而且在onCreate
那Fragment
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myFragment = this;
}
然后在您的Activity
或任何你想要刷新DownloadsFragment
,做s omething这样的:
Fragment frg = DownloadsFragment.myFragment;
if (frg != null) {
getSupportFragmentManager().beginTransaction().detach(frg).commitAllowingStateLoss();
getSupportFragmentManager().beginTransaction().attach(frg).commitAllowingStateLoss();
}
更新
或创建您的Fragment
的方法:
public void refreshFragment() {
getActivity().getSupportFragmentManager().beginTransaction().detach(this).commitAllowingStateLoss();
getActivity().getSupportFragmentManager().beginTransaction().attach(this).commitAllowingStateLoss();
//adapter.notifyDataSetChanged();
}
无论您想去哪里哟刷新Fragment
,做这样的事情:
DownloadsFragment f = (DownloadsFragment) DownloadsFragment.myFragment;
f.getFragmentManager().findFragmentByTag("Your Fragment Tag");
if (f!= null) {
f.refreshFragment();
}
或者使该方法静态并调用:(我不确定这是否可行。你必须自己测试)
DownloadsFragment.refreshFragment();
谢谢S.R,这个工作对我来说 –
高兴听到这个消息。并且不要忘记接受解决你的问题的答案。 –