2013-10-13 165 views
1

不知怎的,我在此得到一个空指针异常在这种方法错误抽屉式导航

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    actionBarToggle.syncState(); 
} 

actionBarToggle.syncState()有一个空指针异常。

现在,如果我注释掉这个再有就是空指针异常,当我触摸动作条,打开导航抽屉

if (actionBarToggle.onOptionsItemSelected(item)) { 
     return true; 
    } 

回答

2

我发现这个问题实际上我在做这个

 actionBarToggle = new ActionBarDrawerToggle(this, drawerLayout, 
      R.drawable.ic_drawer, R.string.drawerOpen, R.string.drawerClose) { 
     public void onDrawerClosed(View view) { 
      getSupportActionBar().setTitle("Close"); 
      ActivityCompat.invalidateOptionsMenu(activity); 
     } 

     public void onDrawerOpened(View main) { 
      getSupportActionBar().setTitle("Open"); 
      ActivityCompat.invalidateOptionsMenu(activity); 
     } 
    }; 
    drawerLayout.setDrawerListener(actionBarToggle); 
    drawerLayout = (DrawerLayout) findViewById(R.id.navigationDrawer);//This should be before actionBarToggle 

于是我就在actionBarToggle使用后intailizing的drawerLayout。

0

我也有NullPointerException。这是一个愚蠢的错误,我在做:

drawerToggle = new ActionBarDrawerToggle(this, 
      drawerLayout, 
      R.drawable.ic_drawer, 
      1, 
      2){ ... } 

我硬编码无障碍环境这两个字符串说1,2,因为我发现这些字符串不重要。据我运行Android 2.3-4.3一切都很好,但在4.4我得到一个异常。 解决方案很简单:只需在values/strings.xml中创建这两个字符串

对不起,我的英语:)