Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用电容后退按钮返回();eclipse中的片段内活动_Java_Android_Eclipse_Android Fragments_Android Activity - Fatal编程技术网

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

Java 使用电容后退按钮返回();eclipse中的片段内活动,java,android,eclipse,android-fragments,android-activity,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_BA

我已经建立了一个新的应用程序,在该应用程序中,我有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
您会得到“AdminM.Fragment2类型的onBackPressed()方法必须重写或实现超类型方法”,因为您添加了重写注释,但Fragment中没有onBackPressed方法。只能在“活动”中重写onBackPressed。 您可以查看和文档,查看哪些方法可以覆盖,哪些方法不能覆盖

正确的方法是每次访问FragmentManager之前都从FragmentManager中检索片段。这样,您就可以确保使用了正确的实例。如果片段为null,则不附加它

活跃

@Override
public void onBackPressed() {
    final WebViewFragment fragment = (WebViewFragment) fragmentManager.findFragmentById(fragmentId);
    if (fragment == null || !fragment.onBackPressed()) {
        super.onBackPressed();
    }
}
在Fragment中,创建一个方法,该方法在WebView返回时返回true,否则返回false。 每次检查webView是否为空,因为fragmen有自己的生命周期机制

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

什么样的错误?你能展示一下吗?AdminM.Fragment2类型的onBackPressed()方法必须重写或实现一个超类型方法对不起,这可能是一个愚蠢的问题,但是你能告诉我应该把这个活动部分放在哪里吗!有2个错误1:无法解析fragmentManager 2:类型的onBackPressed()方法未定义WebView@user2966615您将得到错误,因为您必须修改代码。创建fragmentManager字段并用实际片段id替换fragmentId。您引用的片段应称为WebViewFragment或用实际片段名称替换“WebViewFragment”。你必须处理片段是否可见,才能正确使用后退按钮,因为你有标签,但这完全是另一回事。