添加列表到导航抽屉,菜单项不起作用
我想添加列表到我的导航抽屉菜单项,但它不工作,请检查我的脚本,也检查此图像[https://www.dropbox.com/s/imzufywwj5qyjlj/Nav_Menu.png?dl=0]谢谢。添加列表到导航抽屉,菜单项不起作用
ProfileActivity.java
NavigationView navigationView =(NavigationView)findViewById(R.id.nav_view);
View headerView = navigationView.getHeaderView(0);
TextView prousername = (TextView) headerView.findViewById(R.id.pro_username);
TextView promail = (TextView) headerView.findViewById(R.id.pro_mail);
TextView prophone = (TextView) headerView.findViewById(R.id.pro_phone);
ProDrawareLayout = (DrawerLayout)findViewById(R.id.activity_profile);
ProToggle = new ActionBarDrawerToggle(this,ProDrawareLayout, R.string.open, R.string.close);
ProDrawareLayout.addDrawerListener(ProToggle);
ProToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
prousername.setText(SharedPrefManager.getInstance(this).getUsername());
promail.setText(SharedPrefManager.getInstance(this).getUserEmail());
prophone.setText(SharedPrefManager.getInstance(this).getUserPhone());
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Switch(item.getItemId()){
case R.id.nav_logout:
SharedPrefManager.getInstance(this).logOut();
finish();
startActivity(new Intent(this, MainActivity.class));
}
Navigation_menu.xml
<group android:checkableBehavior="single">
<item android:id="@+id/nav_account"
android:title="My account"/>
<item android:id="@+id/nav_settings"
android:title="Settings"/>
<item android:id="@+id/nav_logout"
android:title="Log Out"/>
</group>
<item android:title="Communicate">
<menu>
<item
android:id="@+id/Rate_id"
android:title="@string/rate_us"
android:showAsAction="never"></item>
<item
android:id="@+id/Contact_id"
android:title="@string/contact_us"
android:showAsAction="never"></item>
<item
android:id="@+id/About_id"
android:title="@string/about_us"
android:showAsAction="never"></item>
</menu>
</item>
activity_profile.xml
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:menu="@menu/navigation_menu"
android:layout_gravity="start"
android:background="@color/colorBG"
app:headerLayout="@layout/navigation_header"
android:id="@+id/nav_view" >
</android.support.design.widget.NavigationView>
你的开关功能的情况下删除大写。
switch
代替Switch
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Switch(item.getItemId()){ // the issue is here
case R.id.nav_logout:
SharedPrefManager.getInstance(this).logOut();
finish();
startActivity(new Intent(this, MainActivity.class));
}
编辑:
不能使用this
喜欢的活动为您的参考,因为你是在这种情况下,一个OnNavigationItemSelectedListener
。
尝试,而不是:
创建一个类字段private Context mContext
。 Instanciate mContext
on onCreate
功能:mContext = this
; 使用mContext
。
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Switch(item.getItemId()){ // the issue is here
case R.id.nav_logout:
SharedPrefManager.getInstance(mContext).logOut();
finish();
startActivity(new Intent(mContext, MainActivity.class));
}
bro。仍然我得到错误在线“.getinstance(this)”和(this,MainActivity.class))请检查此图像[https://www.dropbox.com/s/u9cyxmvi9rmghyt/Nav_Menu2.png?dl=0] –
看看我的编辑可以帮助你。 – Cochi
非常感谢。我昨天刚刚生气了。非常感谢。我能再问你一个问题吗? –
你解决了你的问题吗? – Cochi
您在switch case后缺少返回值case''return true;' –