首页 > 解决方案 > 如何在 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;

    }

    


}

标签: javaandroidandroid-fragmentsandroid-webviewback

解决方案


所有这些片段都有相同的功能是返回片段。为什么不为它们添加基本片段,代码会更容易。


推荐阅读