Haga clic en una cadena / enlace en el cajón de navegación que carga una página HTML local

Zoel:

Soy un principiante con el desarrollo de Android y necesito su ayuda, tengo una aplicación sencilla con una vista web para cargar páginas HTML locales, puse todos mis archivos dentro de los activos, ahora en mi cajón de navegación Quiero tener algunos enlaces que texto / abrir estas páginas.

aquí está mi código:

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>
Miguel :

En primer lugar hay que colocar en su ID de elemento de menú XML, para que usted sea capaz de distinguir y llamarlos (sí, todos ellos) aquí es un ejemplo:

<item 
    android:id="@+id/nav_home"
    android:title="@string/home" />

Es necesario añadir onNavigationItemSelectedListener:

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener

A continuación, añadir el método:

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    String url = "";
    switch (item.getItemId()) {
       case R.id.nav_home: {
            url = "https://google.com";
            break;
       }  
       // Add all your items as case 
    }
    // We will make this method later.
    openUrl(url);
    mDrawerLayout.closeDrawer(GravityCompat.START);
    return true;
}

Añadir esta por debajo de su código navigationView:

navigationView.setNavigationItemSelectedListener(this);

Crear esta función:

private void openUrl(final String url) {
    if (url!= null) {
        // This can also be an intent to your WebView Activity, passing the link in the extras
        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(browserIntent);
    }
}

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=374106&siteId=1
Recomendado
Clasificación