
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,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 NavigationView头部设置监听事件全部内容,希望文章能够帮你解决Android NavigationView头部设置监听事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)