onBackPressed总是返回WebView而不是活动

时间:2014-08-09 14:49:55

标签: android android-fragments methods android-webview back-button

我的Fragment上有一个WebView。但是,我想在" onBackPressed()"上调用一个方法,而不是调用goBack我的WebView。当我点击后退按钮时,我的WebView总是返回到上一页,而根本没有调用我的方法。

  @Override
  public void onBackPressed() {
    if (getSupportFragmentManager().findFragmentByTag("myTag") != null) {
        if(myWebView.canGoBack())
           //myWebView.goBack();
        }else {
          super.onBackPressed();
          saveAllData();
        }
    }else{
       super.onBackPressed();
       saveAllData();
    }
 }

我尝试了不同的方法,但它不起作用,见下文: 编辑1:

在我的Fragment1上:

 public void backButtonWasPressed() {
      saveAllData();
 }

关于我的活动:

 @Override
 public void onBackPressed() {
      super.onBackPressed();
      FragmentManager fm = getSupportFragmentManager();
      TopicFragment fragment1 = (TopicFragment)fm.findFragmentById(R.id.content_frame);
      fragment1.backButtonWasPressed();
 }

请帮忙。

谢谢

1 个答案:

答案 0 :(得分:0)

它正在发生,因为您正在将片段添加到backstack。在提交fragmenttransaction之前添加此代码

transaction.addToBackStack(null);

示例:

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();