单击片段中的后退按钮后应用程序关闭

时间:2013-07-22 16:34:24

标签: android android-fragments

[UPDATE]

问题解决了:只需在提交片段之前添加“addToBackStack(null)”:

Fragment fragment = new WebBrowserFragment();
fragment.setArguments(arguments);
FragmentTransaction fragmentTransaction = getActivity().getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

这是我片段的代码。当我在这个片段上并单击后退按钮时,我的应用程序将关闭。

我想回到之前加载的片段。

我该怎么做才能强行这种行为?

public class WebBrowserFragment extends Fragment {

    WebView mWebView;
    ProgressBar progressB = null;
    private String mUrl;
    private static String mtitle;
    private static String msource;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        LayoutInflater mInflater = (LayoutInflater) getActivity().getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        View view =  (View) mInflater.inflate(R.layout.web_browser_view, null);

        MainActivity.setShareButtonToVisible();

        Bundle bundle = getArguments(); 
        String url = bundle.getString("URL");
        mtitle = bundle.getString("TITRE");
        msource = bundle.getString("SOURCE");

        mUrl = url;

        progressB = (ProgressBar) view.findViewById(R.id.progressBar1);

        mWebView = (WebView) view.findViewById(R.id.webViewArticle);
        mWebView.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                if(progress < 100 && progressB.getVisibility() == ProgressBar.GONE){
                    progressB.setVisibility(ProgressBar.VISIBLE);
                }
                progressB.setProgress(progress);
                if(progress == 100) {
                    progressB.setVisibility(ProgressBar.GONE);
                }
            }
        });
        mWebView.loadUrl(url);  
        return view;
    }

1 个答案:

答案 0 :(得分:3)

将片段附加到Activity时,必须使用FragmentTransaction.addToBackStack方法。这是文档中的引用

  

将此事务添加到后台堆栈。这意味着事务将在提交后被记住,并在稍后从堆栈中弹出时将反转其操作。