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