java - 如何在 webview 片段上添加回上一页?
问题描述
我有一个用 android studio 创建的 android 应用程序,它有一个主要的活动和带有 webview 的片段。每个片段都包含带有网站链接的 webview 代码。我遇到的问题是,当我按下它时,它会关闭应用程序。我想用 back 转到上一页和上一个活动。主要活动代码:
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.nav_facebook:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new FacebookFragment()).commit();
break;
case R.id.nav_twitter:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new TwitterFragment()).commit();
break;
case R.id.nav_instagram:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new InstagramFragment()).commit();
break;
case R.id.nav_linkedin:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new LinkedinFragment()).commit();
break;
case R.id.nav_snapchat:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new SnapchatFragment()).commit();
break;
case R.id.nav_pinterest:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new PinterestFragment()).commit();
break;
case R.id.nav_youtube:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new YoutubeFragment()).commit();
break;
case R.id.nav_about:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new AboutFragment()).commit();
break;
case R.id.nav_privacy:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new PrivacyFragment()).commit();
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
}
@Override
public void onBackPressed() {
DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
这是片段代码之一的代码(其余片段具有类似的代码):
public class FacebookFragment extends Fragment {
public FacebookFragment() {
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_facebook, container, false);
WebView webView = (WebView)v.findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://www.facebook.com/");
return v;
}
}
解决方案
所有这些片段都有相同的功能是返回片段。为什么不为它们添加基本片段,代码会更容易。
推荐阅读
- reactjs - React Router 中的掩码或自定义路径名称
- node.js - 在 react-native 中上传新图像之前设置默认图像
- export - 如何使用工作流代理将文档发送到 Kofax Capture 11 中的 2 个不同的导出连接器之一
- android - Ionic 3:无法访问客户经理/this.deviceAccounts.get()
- r - 有人可以帮我给 %>% 一个函数吗
- reactjs - 一旦 useSelector 钩子返回一个值,有没有办法重新渲染 React-Select 组件?
- presto - presto 中的日期范围,而 varchar
- c# - 使用 Visual Studio 启动以 .net 标准 2.1 编写的应用程序
- flutter - 如何将异步错误记录到控制台而不是在颤动中显示 ErrorWidget?
- java - 如何将转义的 [aabb] 传递给 java 中的 replaceAll() 方法?