java - 如何将我的正常代码写入片段?
问题描述
我正在使用 Android Studio 编写应用程序。我是几天前开始的。我想将 WebView 放在片段中。因为我Fragment
用来呈现 WebView,所以我无法覆盖onBackPressed
以处理后退按钮事件。我正在尝试实现按下后退按钮时打开 WebView 上一页的行为。我找到了这段代码:
@Override
public void onBackPressed(){
if(webView.canGoBack()){
webView.goBack();
}
else{
super.onBackPressed();
}
}
但这在片段中不起作用。有人可以帮我这个例子,或者一般来说我如何在片段类中编写我的普通代码。
解决方案
在 Fragment 的 onCreateView 方法中尝试此代码
webView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == android.view.KeyEvent.ACTION_DOWN) {
if ((keyCode == android.view.KeyEvent.KEYCODE_BACK)) {
if(webView!=null)
{
if(webView.canGoBack())
{
webView.goBack();
} else {
getActivity().onBackPressed();
}
}
}
}
return true;
}
});
推荐阅读
- mongodb - 我有一个 MongoDB 数据库,我只希望特定用户访问他的私人数据
- ios - 将 Objective-C malloc 转换为 Swift
- tsql - SQL Server 执行计划和扩展视图
- mongodb - 在 mongodb 副本上调用 serverStatus() 返回相同的信息
- php - Laravel - 建立 HasManyThrough 关系提供了一个独特的集合
- javascript - 具有动态 ID 的 JQuery/Javascript 函数
- signals - 如何从转储文件更新中生成数字信号?
- php - 信号量在 LAMP 中未按预期工作
- codeigniter - 无法在我的远程服务器上保存生成的 pdf
- php - 使用 php 数组的名称创建新链接