2014-08-30 47 views
2

我正在构建一个简单的应用程序,并且我想从片段返回到具有物理按钮的活动。我怎么做?我试图杀死片段,但它不起作用。如何从片段恢复到以前的活动

+0

你可以保存片段 [这样] [1] [1]的状态:http://stackoverflow.com/questions/11353075/how-can-i-maintain-fragment-state-when-added到后面的堆栈 – 2014-08-30 20:24:25

+0

你的问题没有意义。 'Activity'包含'Fragment',因此你不能''从''fragment'回到'activity'。 – eleven 2014-08-30 20:25:32

回答

6

我这样做,它的工作非常好。

开始片段:

public void showMyFragment(View V){ 
      Fragment fragment = null; 
      fragment = new MyFragment(); 

      if (fragment != null) { 
       FragmentManager fragmentManager = getFragmentManager(); 
       fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).addToBackStack(null).commit(); 
      } 
    } 

这是如何结束与后退按钮片段:

@Override 
    public void onBackPressed() { 
     if (getFragmentManager().getBackStackEntryCount() == 0) { 
      this.finish(); 
     } else { 
      getFragmentManager().popBackStack(); 
     } 
    } 

您的片段:

public class MyFragment extends Fragment { 

      @Override 
      public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
       View v=inflater.inflate(R.layout.activity_info, null); 
       return v; 
      } 
     } 
8

您可以通过调用当前Fragment上的getActivity()来获取对FragmentActivity的引用,然后通过Activity获取onBackPressed()方法进行调用。

getActivity().onBackPressed();