我正在使用jfeinstien10的SlidingMenu
。弹出的菜单是Fragment
。当用户单击菜单项时,它会执行以下操作:
FragmentTransaction t = getActivity().getSupportFragmentManager().beginTransaction();
SherlockListFragment mFrag = new ItemsFragment();
t.replace(R.id.main_frag, mFrag);
t.commit();
但是,我听说从另一个
Fragment
控制Fragment
并不是一种好习惯。在这种情况下,这是可以接受的方法吗?还是我应该对父类FragmentActivity
使用回调方法。如果回调方法是正确的方法,请给我看一个如何工作的例子吗?
最佳答案
建议您不要将其分成零碎,而应将其保持在“ Activity ”级别。为此,请在您的 Activity 中定义一个公共(public)方法,然后从您的 fragment 中调用它。例如:
假设您的 Activity 是:
class MainActivity extends Activity{
....
public void replaceFragment(){
FragmentTransaction t = getSupportFragmentManager().beginTransaction();
SherlockListFragment mFrag = new ItemsFragment();
t.replace(R.id.main_frag, mFrag);
t.commit();
}
....
}
在您的 fragment 中,进行以下调用:
((MainActivity)getActivity()).replaceFragment();