Android NavigationView头部设置监听事件

 更新时间:2017年10月12日 15:04:16   作者:Shengjie  
这篇文章主要为大家详细介绍了Android NavigationView头部设置监听事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

NavigationView头部设置监听事件的方法,供大家参考,具体内容如下

1、将XML里的静态引入删除:

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="start" />
  <!--删除下面两行-->
  <!--app:headerLayout="@layout/nav_header"-->
  <!--app:menu="@menu/nav_menu"-->

2、在代码里 findViewById 找到 NavigationView,然后引入 Header 和 Menu,再获取头部布局,最后设置监听事件:

//findviewbyid
navigationView = (NavigationView) findViewById(R.id.nav_view);

//引入header和menu
navigationView.inflateHeaderView(R.layout.nav_header);
navigationView.inflateMenu(R.menu.nav_menu);

//获取头部布局
View navHeaderView = navigationView.getHeaderView(0);

3、完整代码如下:

private void initNavigation() {

    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    navigationView = (NavigationView) findViewById(R.id.nav_view);
    //引入header和menu
    navigationView.inflateHeaderView(R.layout.nav_header);
    navigationView.inflateMenu(R.menu.nav_menu);
    //设置menu的监听事件
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
      @Override
      public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
          case R.id.add_city:
            //启动
            startActivityForResult(new Intent(MainActivity.this, CityPickerActivity.class),
                REQUEST_CODE_PICK_CITY);
            drawerLayout.closeDrawers();
            break;
          case R.id.setting:
            Intent SettingIntent = new Intent(MainActivity.this, SettingActivity.class);
            startActivity(SettingIntent);
            drawerLayout.closeDrawers();
            break;
          case R.id.about:
            Intent aboutIntent = new Intent(MainActivity.this, aboutActivity.class);
            startActivity(aboutIntent);
            drawerLayout.closeDrawers();
            break;
        }
        return false;
      }
    });

    //获取头部布局
    View navHeaderView = navigationView.getHeaderView(0);
    //设置监听事件
    icon_image = (CircleImageView) navHeaderView.findViewById(R.id.icon_image);
    icon_image.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        dialog.show();
      }
    });

    //读取头像
    Utility.getImageFromShare(this, icon_image);

    //dialog
    dialog = new CustomDialog(this, 100, 100, R.layout.dialog_photo, R.style.Theme_dialog,
        Gravity.BOTTOM, R.style.pop_anim_style);
    //屏幕外点击无效
    dialog.setCancelable(false);

    btn_camera = (Button) dialog.findViewById(R.id.btn_camera);
    btn_camera.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        toCamera();
      }
    });

    btn_picture = (Button) dialog.findViewById(R.id.btn_picture);
    btn_picture.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        toPicture();
      }
    });

    btn_cancel = (Button) dialog.findViewById(R.id.btn_cancel);
    btn_cancel.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        dialog.dismiss();
      }
    });

  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 安卓(Android)中如何实现滑动导航

    安卓(Android)中如何实现滑动导航

    导航是移动应用最重要的方面之一,对用户体验是良好还是糟糕起着至关重要的作用。好的导航可以让一款应用更加易用并且让用户快速上手。相反,糟糕的应用导航很容易让人讨厌,并遭到用户的抛弃。
    2014-08-08
  • Android音频可视化开发案例说明

    Android音频可视化开发案例说明

    最近移植Android,当Android能够在设备上面运行之后,首先想到的是让音频设备跑起来。“没有声音,再好的戏也出不来”接下来介绍Android音频可视化开发流程
    2012-12-12
  • Android编程开发实现多线程断点续传下载器实例

    Android编程开发实现多线程断点续传下载器实例

    这篇文章主要介绍了Android编程开发实现多线程断点续传下载器,涉及Android多线程,文件传输及断点续传的相关技巧,需要的朋友可以参考下
    2016-01-01
  • Android Studio使用Kotlin时,修改代码后运行不生效的解决方法

    Android Studio使用Kotlin时,修改代码后运行不生效的解决方法

    这篇文章主要介绍了Android Studio使用Kotlin时,修改代码后运行不生效的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Android控件之Gallery用法实例分析

    Android控件之Gallery用法实例分析

    这篇文章主要介绍了Android控件之Gallery用法,以完整实例形式较为详细的分析了Gallery控件实现图像显示的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • 详解Android官方架构中UseCase

    详解Android官方架构中UseCase

    这篇文章主要为大家介绍了Android 官方架构中的 UseCase 该怎么写示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Android控件RadioButton的使用方法

    Android控件RadioButton的使用方法

    这篇文章主要为大家详细介绍了Android控件RadioButton的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Android获取ROOT权限的实例代码

    Android获取ROOT权限的实例代码

    这篇文章主要介绍了Android如何获取ROOT权限,写了一个小方法,大家可以在应用中检测ROOT权限
    2013-11-11
  • Android上传多张图片的实例代码(RxJava异步分发)

    Android上传多张图片的实例代码(RxJava异步分发)

    本篇文章主要介绍了Android上传多张图片的实例代码(RxJava异步分发),具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • Android 系统net和wap接入点的区别

    Android 系统net和wap接入点的区别

    这篇文章主要介绍了Android 系统net和wap接入点的区别的相关资料,需要的朋友可以参考下
    2016-09-09

最新评论