【发布时间】:2018-04-10 11:22:53
【问题描述】:
我正在创建一个导航抽屉,我在菜单中添加了一些项目,我的一个按钮是一个注销按钮,我想在其中创建一个进入另一个活动类的意图,这是我的编码:
public void selectItemDrawer(MenuItem menuItem){
Fragment myFragment = null;
Class fragmentclass;
int id = menuItem.getItemId();
switch (menuItem.getItemId()){
case R.id.Products:
fragmentclass = Prods.class;
break;
case R.id.cus:
fragmentclass = Customer.class;
break;
case R.id.calc:
fragmentclass = Calculator.class;
break;
default:
fragmentclass = Prods.class;
}
try {
myFragment = (Fragment) fragmentclass.newInstance();
}
catch (Exception e) {
e.printStackTrace();
}
if (id == R.id.nav_send) {
Intent jj = new Intent(Navigation.this,login.class);
startActivity(jj);
}
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.lt,myFragment).commit();
menuItem.setChecked(true);
setTitle(menuItem.getTitle());
mDrawer.closeDrawers();
当我运行代码时,当我单击注销选项时应用程序突然关闭,我收到以下错误:
FATAL EXCEPTION: main
Process: com.digitialninja.mohammed.curtainclub, PID: 932
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
这是我的 oncreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation);
mDrawer = (DrawerLayout) findViewById(R.id.drawer);
mToggle = new ActionBarDrawerToggle(this,mDrawer,R.string.open,R.string.close);
mDrawer.addDrawerListener(mToggle);
NavigationView nvDrawer = (NavigationView) findViewById(R.id.nv);
mToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setupDrawerContent(nvDrawer);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mToggle.onOptionsItemSelected(item)){
return true ;
}
return super.onOptionsItemSelected(item);
}
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Navigation"
android:id="@+id/drawer"
android:background="@drawable/background">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lt">
</RelativeLayout>
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/nv"
app:headerLayout="@layout/nvheader"
app:menu="@menu/drawermenu"
android:layout_gravity="start">
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
【问题讨论】:
-
我可以看看你的
onCreate和layout吗? -
@GiovanniTerlingen 在这里
标签: android navigation navigation-drawer