Android - 构造函数ActionBarDrawerToggle未定义

时间:2013-11-09 18:30:49

标签: android

我在oncreate函数中使用此代码,通过按应用程序图标打开导航栏。

ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(
                this,                  /* host Activity */
                (DrawerLayout) findViewById(R.id.left_drawer), /* DrawerLayout object */
                getResources().getDrawable(R.drawable.ic_drawer),  /* nav drawer icon to replace 'Up' caret */
                getString(R.string.drawer_open),  /* "open drawer" description */
                getString(R.string.drawer_close)  /* "close drawer" description */
                ) {

            /** Called when a drawer has settled in a completely closed state. */
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(R.string.title_activity_add);
            }

            /** Called when a drawer has settled in a completely open state. */
            public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle(R.string.drawer_title);
            }
        };

现在它说“构造函数ActionBarDrawerToggle(AddActivity,DrawerLayout,Drawable,String,String)未定义”。我导入了android.support.v4.app.ActionBarDrawerToggle。问题出在哪里?

2 个答案:

答案 0 :(得分:4)

构造函数不是ActionBarDrawerToggle(AddActivity, DrawerLayout, Drawable, String, String)。它是ActionBarDrawerToggle(Activity, DrawerLayout, int, int, int)。将最后三个参数更改为资源ID,而不是引用资源ID的结果。

答案 1 :(得分:0)

只需回显@CommonsWare答案。不用findViewById(R.id.left_drawer),而要做R.id.left_drawer

所以最终结果将如下所示:

ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(
                this,                  /* host Activity */
                R.drawable.ic_drawer,  /* nav drawer icon to replace 'Up' caret */
                R.string.drawer_open,  /* "open drawer" description */
                R.string.drawer_close  /* "close drawer" description */
                )