如何将Click事件添加到Android的NavigationView上的项目

Sus*_*nde 4 android android-navigationview

我正在尝试NavigationDrawer在我的Android项目中实现补充工具栏.为此,我已经习惯NavigationViewDrawerLayout.要显示我使用菜单的项目.我想在添加的菜单项上添加click事件.

代码:在导航菜单中 -

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/nav_account" android:title="My Account"/>
    <item android:id="@+id/nav_settings" android:title="Settings"/>
    <item android:id="@+id/nav_layout" android:title="Log Out"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

在视图中:

<android.support.design.widget.NavigationView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        app:menu="@menu/navigation_menu"
        android:layout_gravity="start" />
Run Code Online (Sandbox Code Playgroud)

Niz*_*zam 24

  1. 在Activity中实现监听器:

    public class HomeActivity extends AppCompatActivity implements 
                  NavigationView.OnNavigationItemSelectedListener
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在onCreate of Activity中的setNavigationItemSelectedListener

    NavigationView mNavigationView = (NavigationView) findViewById(R.id.account_navigation_view);
    
    if (mNavigationView != null) {
            mNavigationView.setNavigationItemSelectedListener(this);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 覆盖该方法

    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();
    
        if (id == R.id.nav_account) {//DO your stuff }
        ...
    }
    
    Run Code Online (Sandbox Code Playgroud)