首页 > 系统 > Android > 正文

Android NavigationView头部设置监听事件

2019-10-22 18:25:52
字体:
来源:转载
供稿:网友

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,再获取头部布局,最后设置监听事件:

//findviewbyidnavigationView = (NavigationView) findViewById(R.id.nav_view);//引入header和menunavigationView.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();      }    });  }

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


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表