1

不知何故,我在这个方法中得到了一个空指针异常

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

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

现在,如果我将其注释掉,那么当我触摸操作栏以打开导航抽屉时会出现空指针异常

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

3 回答 3

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中使用了drawerLayout之后就对它进行了详细化。

于 2013-10-13T11:47:15.920 回答
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 中创建这两个字符串

对不起我的英语不好 :)

于 2014-08-28T16:56:40.927 回答
0

按照此处的说明进行操作。

http://developer.android.com/training/implementing-navigation/nav-drawer.html

您的 actionBarToggle 对象为空。ActionBarDrawerToggle在您尝试使用它之前创建并将其分配给您的变量。

于 2013-10-13T11:31:54.003 回答