Android NavigationView頭部設(shè)置監(jiān)聽(tīng)事件
NavigationView頭部設(shè)置監(jiān)聽(tīng)事件的方法,供大家參考,具體內(nèi)容如下
1、將XML里的靜態(tài)引入刪除:
<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,再獲取頭部布局,最后設(shè)置監(jiān)聽(tīng)事件:
//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);
//設(shè)置menu的監(jiān)聽(tīng)事件
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.add_city:
//啟動(dòng)
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);
//設(shè)置監(jiān)聽(tīng)事件
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);
//屏幕外點(diǎn)擊無(wú)效
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();
}
});
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
安卓(Android)中如何實(shí)現(xiàn)滑動(dòng)導(dǎo)航
導(dǎo)航是移動(dòng)應(yīng)用最重要的方面之一,對(duì)用戶(hù)體驗(yàn)是良好還是糟糕起著至關(guān)重要的作用。好的導(dǎo)航可以讓一款應(yīng)用更加易用并且讓用戶(hù)快速上手。相反,糟糕的應(yīng)用導(dǎo)航很容易讓人討厭,并遭到用戶(hù)的拋棄。2014-08-08
Android音頻可視化開(kāi)發(fā)案例說(shuō)明
最近移植Android,當(dāng)Android能夠在設(shè)備上面運(yùn)行之后,首先想到的是讓音頻設(shè)備跑起來(lái)?!皼](méi)有聲音,再好的戲也出不來(lái)”接下來(lái)介紹Android音頻可視化開(kāi)發(fā)流程2012-12-12
Android編程開(kāi)發(fā)實(shí)現(xiàn)多線(xiàn)程斷點(diǎn)續(xù)傳下載器實(shí)例
這篇文章主要介紹了Android編程開(kāi)發(fā)實(shí)現(xiàn)多線(xiàn)程斷點(diǎn)續(xù)傳下載器,涉及Android多線(xiàn)程,文件傳輸及斷點(diǎn)續(xù)傳的相關(guān)技巧,需要的朋友可以參考下2016-01-01
Android Studio使用Kotlin時(shí),修改代碼后運(yùn)行不生效的解決方法
這篇文章主要介紹了Android Studio使用Kotlin時(shí),修改代碼后運(yùn)行不生效的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Android獲取ROOT權(quán)限的實(shí)例代碼
這篇文章主要介紹了Android如何獲取ROOT權(quán)限,寫(xiě)了一個(gè)小方法,大家可以在應(yīng)用中檢測(cè)ROOT權(quán)限2013-11-11
Android上傳多張圖片的實(shí)例代碼(RxJava異步分發(fā))
本篇文章主要介紹了Android上傳多張圖片的實(shí)例代碼(RxJava異步分發(fā)),具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08
Android 系統(tǒng)net和wap接入點(diǎn)的區(qū)別
這篇文章主要介紹了Android 系統(tǒng)net和wap接入點(diǎn)的區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-09-09

