gpt4 book ai didi

android - 如何转到 fragment 中 Webview 中的上一页?

转载 作者:行者123 更新时间:2023-11-29 16:33:25 29 4
gpt4 key购买 nike

我有一个名为 SearchActivity 的 Activity 。它有一个搜索栏和 4 个带有 Web View 的选项卡。当我输入文本并单击搜索时,所有选项卡都在加载我传递给它们的相应网址。但是当我点击后退按钮时,我希望所有的 webviews 返回到上一页,而不是 Activity 关闭。我试过下面的代码,但它不起作用。这是 SearchActivity 的代码

public boolean onKeyDown(int keyCode, KeyEvent event) {

int count = getFragmentManager().getBackStackEntryCount();

if (count != 0 && (keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
getFragmentManager().popBackStack();
//additional code
} else {
super.onBackPressed();
}
return super.onKeyDown(keyCode, event);
}

最佳答案

1.在SearchActivity上添加一个接口(interface),并在MyFragment上实现该接口(interface),实现SearchActivityMyFragment之间的通信.

2.重写SearchActivityonBackPressed()方法,在按下后退按钮时添加自定义函数,并检查fragment的WebView是否可以走通过 goBack 监听器返回。如果可以回去,那就回去吧。如果不能,调用 super.onBackPressed()

搜索 Activity .java

public class SearchActivity extends AppCompatActivity{

public interface goBack{
boolean canGoBack();
}

@Override
public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
//fragment_container is a layout where fragment is populated

if (fragment instanceof goBack && fragment.canGoBack()) {
return;
}
super.onBackPressed();

}
}

MyFragment.java

public class MyFragment extends Fragment implements SearchActivity.goBack{
@Override
public boolean canGoBack() {
if (webView.canGoBack()) {

webView.goBack();
return true;
}
return false;
}

关于android - 如何转到 fragment 中 Webview 中的上一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53351280/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com