带有ActionBarSherlock片段的Android webview canGoBack()错误

带有ActionBarSherlock片段的Android webview canGoBack()错误,android,webview,actionbarsherlock,fragment,back-button,Android,Webview,Actionbarsherlock,Fragment,Back Button,我正在创建一个包含3个ActionBar选项卡的web应用程序。每个选项卡都会触发一个webview。在其中一个选项卡上,我需要安卓设备返回按钮来触发该网络视图的goBack操作。我正在尝试与blackbelt和netinept at建议的解决方案类似的解决方案,但我在MainActivity.java文件中遇到了以下错误——“类型FragmentTab3的方法canGoBack()未定义” 这是我的密码。请让我知道我可能做错了什么 ---MainActivity.java--- 我得到的是“类

我正在创建一个包含3个ActionBar选项卡的web应用程序。每个选项卡都会触发一个webview。在其中一个选项卡上,我需要安卓设备返回按钮来触发该网络视图的goBack操作。我正在尝试与blackbelt和netinept at建议的解决方案类似的解决方案,但我在MainActivity.java文件中遇到了以下错误——“类型FragmentTab3的方法canGoBack()未定义”

这是我的密码。请让我知道我可能做错了什么

---MainActivity.java---

我得到的是“类型FragmentTab3的canGoBack()方法未定义”

---FragmentTab3.java---

---fragmenttab3.xml---


正如erros所说,片段没有名为canGoBack的方法。您可以这样做:

public class FragmentTab3 extends SherlockFragment
 {
   /// your code

    public boolean canGoBack() {
        return webView != null && webView.canGoBack();
    }

}

我在MainActivity.java中使用了4个选项卡,每个选项卡都有一个web视图

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    int currPage = mPager.getCurrentItem();
    WebView wv = null;
    switch (currPage) {
    case 0:
        wv = (WebView) mPager.getChildAt(currPage).findViewById(R.id.webView1);
        break;
    case 1:
        wv = (WebView) mPager.getChildAt(currPage).findViewById(R.id.webView2);
        break;
    case 2:
        wv = (WebView) mPager.getChildAt(currPage).findViewById(R.id.webView3);
        break;
    case 3:
        wv = (WebView) mPager.getChildAt(currPage).findViewById(R.id.webView4);
        break;
    }

    if (wv != null) {
        if (wv.canGoBack()) {
            wv.goBack();
        } else {
            super.onBackPressed();
        }
    } else {
        super.onBackPressed();
    }
}

谢谢我添加了你建议的代码,但它还没有工作。我运行了调试器,发现webview在'Fragment webview=getSupportFragmentManager().findFragmentById(R.id.webview);'@Blackbelt仍在进行一些测试,但我通过更改
Fragment webview=getSupportFragmentManager().findFragmentById(R.id.webview)使其正常工作
to
Fragment webview=getSupportFragmentManager().findffragmentbyid(R.id.Fragment\u容器)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <WebView  
        android:id="@+id/webview"
        android:tag="webview_tag"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" />

</LinearLayout>
public class FragmentTab3 extends SherlockFragment
 {
   /// your code

    public boolean canGoBack() {
        return webView != null && webView.canGoBack();
    }

}
@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    int currPage = mPager.getCurrentItem();
    WebView wv = null;
    switch (currPage) {
    case 0:
        wv = (WebView) mPager.getChildAt(currPage).findViewById(R.id.webView1);
        break;
    case 1:
        wv = (WebView) mPager.getChildAt(currPage).findViewById(R.id.webView2);
        break;
    case 2:
        wv = (WebView) mPager.getChildAt(currPage).findViewById(R.id.webView3);
        break;
    case 3:
        wv = (WebView) mPager.getChildAt(currPage).findViewById(R.id.webView4);
        break;
    }

    if (wv != null) {
        if (wv.canGoBack()) {
            wv.goBack();
        } else {
            super.onBackPressed();
        }
    } else {
        super.onBackPressed();
    }
}