Android中怎么利用NavigationView头部设置监听事件
短信预约 -IT技能 免费直播动态提醒
今天就跟大家聊聊有关Android中怎么利用NavigationView头部设置监听事件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
将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"-->
在代码里 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);
完整代码如下:
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中怎么利用NavigationView头部设置监听事件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341