我在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。问题出在哪里?
答案 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 */
)