Android上的ActionBarDrawerToggle问题

Android上的ActionBarDrawerToggle问题,android,Android,伙计们,我正在为我的工作开发一个私人应用程序,但我有一个未知的问题,我有点迷茫,不明白这是怎么回事,我试图设置一个简单的ActionBarDrawerToggle,但它不起作用,它甚至显示和取消设置图标,而不是我设置的,所以,请问,有人能帮我吗?如果我不先解决这个问题,我就无法继续 public class MainActivity extends Activity { private String[] titulos; private DrawerLayout NavDrawe

伙计们,我正在为我的工作开发一个私人应用程序,但我有一个未知的问题,我有点迷茫,不明白这是怎么回事,我试图设置一个简单的ActionBarDrawerToggle,但它不起作用,它甚至显示和取消设置图标,而不是我设置的,所以,请问,有人能帮我吗?如果我不先解决这个问题,我就无法继续

public class MainActivity extends Activity {
    private String[] titulos;
    private DrawerLayout NavDrawerLayout;
    private ListView NavList;
    private ArrayList<Item_objct> NavItms;
    private TypedArray NavIcons;
    private ActionBarDrawerToggle mDrawerToggle;
    private CharSequence mDrawerTitle;
    private CharSequence mTitle;
    NavigationAdapter NavAdapter;

//Implementacion del ListView
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    //Drawer Layout
    NavDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    //Lista
    NavList = (ListView) findViewById(R.id.lista);
    //Declaramos el header el caul sera el layout de header.xml
    View header = getLayoutInflater().inflate(R.layout.header, null);
    //Establecemos header
    NavList.addHeaderView(header);
    //Tomamos listado  de imgs desde drawable
    NavIcons = getResources().obtainTypedArray(R.array.navigation_iconos);
    //Tomamos listado  de titulos desde el string-array de los recursos @string/nav_options
    titulos = getResources().getStringArray(R.array.nav_options);
    //Listado de titulos de barra de navegacion
    NavItms = new ArrayList<Item_objct>();
    //Agregamos objetos Item_objct al array
    //Pedidos
    NavItms.add(new Item_objct(titulos[0], NavIcons.getResourceId(0, -1)));
    //Gastos
    NavItms.add(new Item_objct(titulos[1], NavIcons.getResourceId(1, -1)));
    //Productos
    NavItms.add(new Item_objct(titulos[2], NavIcons.getResourceId(2, -1)));
    //Clientes
    NavItms.add(new Item_objct(titulos[3], NavIcons.getResourceId(3, -1)));
    //Ganancias
    NavItms.add(new Item_objct(titulos[4], NavIcons.getResourceId(4, -1)));
    //Capital
    NavItms.add(new Item_objct(titulos[5], NavIcons.getResourceId(5, -1)));
    //Declaramos y seteamos nuestrp adaptador al cual le pasamos el array con los titulos
    NavAdapter= new NavigationAdapter(this,NavItms);
    NavList.setAdapter(NavAdapter);
    //Siempre vamos a mostrar el mismo titulo
    mTitle = mDrawerTitle = getTitle();

    // Declaramos el mDrawerToggle y las imgs a utilizar
    mDrawerToggle = new ActionBarDrawerToggle(
            this,                   /*Host Activity*/
            NavDrawerLayout,        /*DrawerLayout Object*/
            R.drawable.ic_drawer,   /*Icono de navegacion*/
            R.string.app_name,      /* Nombre de aplicacion*/
            R.string.hello_world    /* "Close drawer" description*/
    ) {
        /**
         * Called when a drawer has settled in a completely closed state
         */
        public void onDrawerClosed(View view) {
            Log.e("Cerrado Completo", "!!");
        }

        /**
         * Called when a drawer has settled in a completely open state
         */
        public void onDrawerOpened(View drawerView) {
            Log.e("Apertura Completa", "!!");
        }
    };

    //Establecemos que mDrawerToggle declarado anteriormente sea el DrawerListener
    NavDrawerLayout.setDrawerListener(mDrawerToggle);
    //Establecemos que el ActionBar muestre el boton Home
    getActionBar().setDisplayHomeAsUpEnabled(true);

这是我的主要活动课,我只是不知道为什么我想你忘了添加一些东西:

1.-覆盖以下活动方法以与状态同步抽屉切换:

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    // Sync the toggle state after onRestoreInstanceState has occurred.
    mDrawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    mDrawerToggle.onConfigurationChanged(newConfig);
}
2.-此外,您需要告诉ActionBar必须启用home图标。例如,在OnCreate中调用以下命令:

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
我希望这对你有帮助

如果这对您没有帮助,请检查:这是一个很好的指南


祝你好运

你可以让Android Studio通过New->activity为你创建一个完全工作的导航栏活动。是的,你是对的,但我还没有准备好使用这种方式,我是初学者,而且那些自动创建的类有很多方法,我不知道它们的用途,所以现在,我更喜欢自己开发方法,而不是使用那些模板谢谢你这么多BamsBamx肯定问题出在那些未声明的方法上,我声明了它们,它就行了。多谢各位much@MaToXz请点击屏幕左侧的勾号接受答案好吗?我将非常感谢你lot@BamsBamx我已经重写了onPostCreate和onConfigurationChanged方法,但在创建活动后,我的汉堡包图标不起作用。我从左边滑动抽屉后,汉堡图标开始按预期工作。有什么想法吗?@IvanBajalovic你调用过Toolbar.setNavigationOnClickListener吗?@BamsBamx我也尝试过使用mDrawerToggle.SetToolbar NavigationClickListener,但没有触发此事件。