单击导航抽屉上的字符串/链接以加载本地HTML页面

问题描述 投票:1回答:1

我是一名从事android开发的初学者,我需要您的帮助,我有一个简单的应用程序,带有一个webview来加载本地HTML页面,我将所有文件都放在资源中,现在在导航抽屉中,我想要一些文本/打开这些页面的链接。

这是我的代码:

MainActivity.java

package com.example.psalms;

import android.os.Bundle;
import android.view.View;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebView;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.navigation.NavigationView;

import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

public class MainActivity extends AppCompatActivity {

    private AppBarConfiguration mAppBarConfiguration;
    private WebView mWebView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mWebView = (WebView) findViewById(R.id.activity_main_webview);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        NavigationView navigationView = findViewById(R.id.nav_view);
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.
        mAppBarConfiguration = new AppBarConfiguration.Builder(
                R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow)
                .setDrawerLayout(drawer)
                .build();
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
        NavigationUI.setupWithNavController(navigationView, navController);
        // Enable Javascript
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.loadUrl("file:///android_asset/index.html");

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onSupportNavigateUp() {
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        return NavigationUI.navigateUp(navController, mAppBarConfiguration)
                || super.onSupportNavigateUp();
    }
}

activity_main_drawer.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="navigation_view">

    <group android:checkableBehavior="single">
        <item
            android:title="@string/home" />
        <item
            android:title="@string/erminia" />
        <item
            android:title="@string/psalmos1" />
        <item
            android:title="@string/psalmos2" />
        <item
            android:title="@string/psalmos3" />
        <item
            android:title="@string/psalmos4" />
        <item
            android:title="@string/psalmos5" />
        <item
            android:title="@string/psalmos6" />
        <item
            android:title="@string/psalmos7" />
        <item
            android:title="@string/psalmos8" />
        <item
            android:title="@string/psalmos9" />
        <item
            android:title="@string/psalmos10" />
        <item
            android:title="@string/psalmos11" />
        <item
            android:title="@string/psalmos12" />
        <item
            android:title="@string/psalmos13" />
        <item
            android:title="@string/psalmos14" />
        <item
            android:title="@string/psalmos15" />
        <item
            android:title="@string/psalmos16" />
        <item
            android:title="@string/psalmos17" />
        <item
            android:title="@string/psalmos18" />
        <item
            android:title="@string/psalmos19" />
        <item
            android:title="@string/psalmos20" />
        <item
            android:title="@string/psalmos21" />
        <item
            android:title="@string/psalmos22" />
        <item
            android:title="@string/psalmos23" />
        <item
            android:title="@string/psalmos24" />
        <item
            android:title="@string/psalmos25" />
        <item
            android:title="@string/psalmos26" />
        <item
            android:title="@string/psalmos27" />
        <item
            android:title="@string/psalmos28" />
        <item
            android:title="@string/psalmos29" />
        <item
            android:title="@string/psalmos30" />
        <item
            android:title="@string/psalmos31" />
        <item
            android:title="@string/psalmos32" />
        <item
            android:title="@string/psalmos33" />
        <item
            android:title="@string/psalmos34" />
        <item
            android:title="@string/psalmos35" />
        <item
            android:title="@string/psalmos36" />
        <item
            android:title="@string/psalmos37" />
        <item
            android:title="@string/psalmos38" />
        <item
            android:title="@string/psalmos39" />
        <item
            android:title="@string/psalmos40" />
        <item
            android:title="@string/psalmos41" />
        <item
            android:title="@string/psalmos42" />
        <item
            android:title="@string/psalmos43" />
        <item
            android:title="@string/psalmos44" />
        <item
            android:title="@string/psalmos45" />
        <item
            android:title="@string/psalmos46" />
        <item
            android:title="@string/psalmos47" />
        <item
            android:title="@string/psalmos48" />
        <item
            android:title="@string/psalmos49" />
        <item
            android:title="@string/psalmos50" />
        <item
            android:title="@string/psalmos51" />
        <item
            android:title="@string/psalmos52" />
        <item
            android:title="@string/psalmos53" />
        <item
            android:title="@string/psalmos54" />
        <item
            android:title="@string/psalmos55" />
        <item
            android:title="@string/psalmos56" />
        <item
            android:title="@string/psalmos57" />
        <item
            android:title="@string/psalmos58" />
        <item
            android:title="@string/psalmos59" />
        <item
            android:title="@string/psalmos60" />
        <item
            android:title="@string/psalmos61" />
        <item
            android:title="@string/psalmos62" />
        <item
            android:title="@string/psalmos63" />
        <item
            android:title="@string/psalmos64" />
        <item
            android:title="@string/psalmos65" />
        <item
            android:title="@string/psalmos66" />
        <item
            android:title="@string/psalmos67" />
        <item
            android:title="@string/psalmos68" />
        <item
            android:title="@string/psalmos69" />
        <item
            android:title="@string/psalmos70" />
        <item
            android:title="@string/psalmos71" />
        <item
            android:title="@string/psalmos72" />
        <item
            android:title="@string/psalmos73" />
        <item
            android:title="@string/psalmos74" />
        <item
            android:title="@string/psalmos75" />
        <item
            android:title="@string/psalmos76" />
        <item
            android:title="@string/psalmos77" />
        <item
            android:title="@string/psalmos78" />
        <item
            android:title="@string/psalmos79" />
        <item
            android:title="@string/psalmos80" />
        <item
            android:title="@string/psalmos81" />
        <item
            android:title="@string/psalmos82" />
        <item
            android:title="@string/psalmos83" />
        <item
            android:title="@string/psalmos84" />
        <item
            android:title="@string/psalmos85" />
        <item
            android:title="@string/psalmos86" />
        <item
            android:title="@string/psalmos87" />
        <item
            android:title="@string/psalmos88" />
        <item
            android:title="@string/psalmos89" />
        <item
            android:title="@string/psalmos90" />
        <item
            android:title="@string/psalmos91" />
        <item
            android:title="@string/psalmos92" />
        <item
            android:title="@string/psalmos93" />
        <item
            android:title="@string/psalmos94" />
        <item
            android:title="@string/psalmos95" />
        <item
            android:title="@string/psalmos96" />
        <item
            android:title="@string/psalmos97" />
        <item
            android:title="@string/psalmos98" />
        <item
            android:title="@string/psalmos99" />
        <item
            android:title="@string/psalmos100" />
        <item
            android:title="@string/psalmos101" />
        <item
            android:title="@string/psalmos102" />
        <item
            android:title="@string/psalmos103" />
        <item
            android:title="@string/psalmos104" />
        <item
            android:title="@string/psalmos105" />
        <item
            android:title="@string/psalmos106" />
        <item
            android:title="@string/psalmos107" />
        <item
            android:title="@string/psalmos108" />
        <item
            android:title="@string/psalmos109" />
        <item
            android:title="@string/psalmos110" />
        <item
            android:title="@string/psalmos111" />
        <item
            android:title="@string/psalmos112" />
        <item
            android:title="@string/psalmos113" />
        <item
            android:title="@string/psalmos114" />
        <item
            android:title="@string/psalmos115" />
        <item
            android:title="@string/psalmos116" />
        <item
            android:title="@string/psalmos117" />
        <item
            android:title="@string/psalmos118" />
        <item
            android:title="@string/psalmos119" />
        <item
            android:title="@string/psalmos120" />
        <item
            android:title="@string/psalmos121" />
        <item
            android:title="@string/psalmos122" />
        <item
            android:title="@string/psalmos123" />
        <item
            android:title="@string/psalmos124" />
        <item
            android:title="@string/psalmos125" />
        <item
            android:title="@string/psalmos126" />
        <item
            android:title="@string/psalmos127" />
        <item
            android:title="@string/psalmos128" />
        <item
            android:title="@string/psalmos129" />
        <item
            android:title="@string/psalmos130" />
        <item
            android:title="@string/psalmos131" />
        <item
            android:title="@string/psalmos132" />
        <item
            android:title="@string/psalmos133" />
        <item
            android:title="@string/psalmos134" />
        <item
            android:title="@string/psalmos135" />
        <item
            android:title="@string/psalmos136" />
        <item
            android:title="@string/psalmos137" />
        <item
            android:title="@string/psalmos138" />
        <item
            android:title="@string/psalmos139" />
        <item
            android:title="@string/psalmos140" />
        <item
            android:title="@string/psalmos141" />
        <item
            android:title="@string/psalmos142" />
        <item
            android:title="@string/psalmos143" />
        <item
            android:title="@string/psalmos144" />
        <item
            android:title="@string/psalmos145" />
        <item
            android:title="@string/psalmos146" />
        <item
            android:title="@string/psalmos147" />
        <item
            android:title="@string/psalmos148" />
        <item
            android:title="@string/psalmos149" />
        <item
            android:title="@string/psalmos150" />
        <item
            android:title="@string/psalmos151" />

    </group>
</menu>

mobile_navigation.xml

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mobile_navigation"
    app:startDestination="@+id/nav_home">

    <fragment
        android:id="@+id/nav_home"
        android:name="com.example.psalms.ui.home.HomeFragment"
        android:label="@string/home"
        tools:layout="@layout/fragment_home">

        <action
            android:id="@+id/action_HomeFragment_to_HomeSecondFragment"
            app:destination="@id/nav_home_second" />
    </fragment>
    <fragment
        android:id="@+id/nav_home_second"
        android:name="com.example.psalms.ui.home.HomeSecondFragment"
        android:label="@string/home_second"
        tools:layout="@layout/fragment_home_second">
        <action
            android:id="@+id/action_HomeSecondFragment_to_HomeFragment"
            app:destination="@id/nav_home" />

        <argument
            android:name="myArg"
            app:argType="string" />
    </fragment>

    <fragment
        android:id="@+id/nav_gallery"
        android:name="com.example.psalms.ui.gallery.GalleryFragment"
        android:label="@string/erminia"
        tools:layout="@layout/fragment_gallery" />

    <fragment
        android:id="@+id/nav_slideshow"
        android:name="com.example.psalms.ui.slideshow.SlideshowFragment"
        android:label="@string/psalmos1"
        tools:layout="@layout/fragment_slideshow" />
</navigation>
java android android-studio android-layout
1个回答
0
投票

首先,您需要将ID放在菜单项xml中,以便您能够区分并调用它们(是的,所有这些),下面是一个示例:

© www.soinside.com 2019 - 2024. All rights reserved.