使用电容后退按钮返回();在eclipse中的片段活动

时间:2014-01-23 12:10:50

标签: java android eclipse android-fragments android-activity

我已经构建了一个新应用程序,在该应用程序中我有3个带有webview的片段。基本上我想实现goBack();在电容式后退按钮上。我试过了

@Override
public void onBackPressed() {
    webView.goBack();
return;
}

以及

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        webView.goBack();
        return false;
    }
    return super.onKeyDown(keyCode, event);
}

但我最终得到了错误。所以任何人都可以帮助我这样做。谢谢 这是一个

public class AdminM extends FragmentActivity implements ActionBar.TabListener

1 个答案:

答案 0 :(得分:0)

你得到“AdminM.Fragment2类型的onBackPressed()方法必须覆盖或实现超类型方法”,因为你添加了Override注释,但Fragment中没有onBackPressed方法。您只能在Activity中覆盖onBackPressed。 您可以查看ActivityFragment文档,了解您可以覆盖的方法以及无法覆盖的方法。

正确的方法是在每次访问FragmentManager之前从FragmentManager中检索Fragment。这样您就可以确保使用正确的实例。如果Fragment为null,则表示没有附加。

活动

@Override
public void onBackPressed() {
    final WebViewFragment fragment = (WebViewFragment) fragmentManager.findFragmentById(fragmentId);
    if (fragment == null || !fragment.onBackPressed()) {
        super.onBackPressed();
    }
}

在Fragment中,创建一个方法,如果WebView返回则返回true,否则返回false。 每次检查webView是否为null,因为fragmen拥有自己的生命周期机制。

public boolean onBackPressed() {
    if (webView != null && webView.canGoBack()) {
        webView.goBack();
        return true;
    }
    return false;
}