简体   繁体   English

我有ActionBarDrawerToggle问题

[英]I have problems ActionBarDrawerToggle

Recently I was using in my App this feature. 最近,我在我的应用程序中使用了此功能。 But, using the ActionBarDrawerToggle a new app, I went unused error in that function. 但是,使用ActionBarDrawerToggle一个新应用程序,我在该函数中使用了未使用的错误。 So I implemented import android.support.v7.app.ActionBarDrawerToggle; 所以我实现了导入android.support.v7.app.ActionBarDrawerToggle; But now the code does not work for me. 但是现在代码对我不起作用。

public class MainActivity extends ActionBarActivity {
private ListView drawerList;
private String[] drawerOptions;
private DrawerLayout drawerLayout;
private ActionBarDrawerToggle drawerToggle;
private Fragment[] fragments = new Fragment[]{
                                               new MainFragment(),
                                               new AcordesFragment(),
                                               new AfinadorFragment(),
                                               new AboutFragment(),
                                               new ExitFragment(),
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    drawerList = (ListView) findViewById(R.id.leftDrawer);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
    drawerOptions = getResources().getStringArray(R.array.drawer_options);

    drawerList.setAdapter(new ArrayAdapter<String> (this,
                                                    R.layout.drawer_list_item,
                                                    drawerOptions));

    drawerList.setItemChecked(0, true);
    drawerList.setOnItemClickListener(new DrawerItemClickListener());

    drawerToggle = new ActionBarDrawerToggle(this,
                                            drawerLayout,
                                            R.drawable.ic_drawer,
                                            R.string.drawer_open,
                                            R.string.drawer_close){
                                                                    public void onDrawerClosed(View view){
                                                                        ActivityCompat.invalidateOptionsMenu(MainActivity.this);
                                                                    }
                                                                    public void onDrawerOpened(View drawerView){
                                                                        ActivityCompat.invalidateOptionsMenu(MainActivity.this);
                                                                    }
                                             };

    drawerLayout.setDrawerListener(drawerToggle);

    FragmentManager manager = getSupportFragmentManager();
    manager.beginTransaction()
            .add(R.id.contentFrame, fragments[0])
            .add(R.id.contentFrame, fragments[1])
            .add(R.id.contentFrame, fragments[2])
            .add(R.id.contentFrame, fragments[3])
            .add(R.id.contentFrame, fragments[4])
            .hide(fragments[1])
            .hide(fragments[2])
            .hide(fragments[3])
            .hide(fragments[4])
            .commit();

    ActionBar actionbar = getSupportActionBar();
    actionbar.setDisplayHomeAsUpEnabled(true);
    actionbar.setHomeButtonEnabled(true);

    if( getIntent().getBooleanExtra("Exit me", false)){
        finish();
        return; // add this to prevent from doing unnecessary stuffs
    }

}

The error is in the following code: 错误在以下代码中:

    drawerList.setOnItemClickListener(new DrawerItemClickListener());

    drawerToggle = new ActionBarDrawerToggle(this,
                                            drawerLayout,
                                            R.drawable.ic_drawer,
                                            R.string.drawer_open,
                                            R.string.drawer_close){
                                                                    public void onDrawerClosed(View view){
                                                                        ActivityCompat.invalidateOptionsMenu(MainActivity.this);
                                                                    }
                                                                    public void onDrawerOpened(View drawerView){
                                                                        ActivityCompat.invalidateOptionsMenu(MainActivity.this);
                                                                    }
                                             };

Surely Be That it has changed the syntax When using the ActionBarDrawerToggle but can not find. 可以肯定的是,它在使用ActionBarDrawerToggle时已更改了语法,但找不到。

Thank you very much for everything 非常感谢你所做的一切

Thank you very much for everything. 非常感谢你所做的一切。 The error has been resolved. 该错误已得到解决。 Thank you very much to @hata and @Spring Breaker 非常感谢@hata和@Spring Breaker

Here is the corrected code so that other people can see it 这是更正的代码,以便其他人可以看到

public class MainActivity extends ActionBarActivity {
private ListView drawerList;
private String[] drawerOptions;
private DrawerLayout drawerLayout;
private ActionBarDrawerToggle drawerToggle;
private Fragment[] fragments = new Fragment[]{
                                               new MainFragment(),
                                               new AcordesFragment(),
                                               new AfinadorFragment(),
                                               new AboutFragment(),
                                               new ExitFragment(),
};


private class DrawerItemClickListener implements ListView.OnItemClickListener {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    drawerList = (ListView) findViewById(R.id.leftDrawer);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
    drawerOptions = getResources().getStringArray(R.array.drawer_options);

    drawerList.setAdapter(new ArrayAdapter<String> (this,
                                                    R.layout.drawer_list_item,
                                                    drawerOptions));

    drawerList.setItemChecked(0, true);

    drawerList.setOnItemClickListener(new DrawerItemClickListener());

    drawerToggle = new ActionBarDrawerToggle(this,
                                            drawerLayout,
                                            //R.drawable.ic_drawer,
                                            R.string.drawer_open,
                                            R.string.drawer_close){
                                                                    public void onDrawerClosed(View view){
                                                                        ActivityCompat.invalidateOptionsMenu(MainActivity.this);
                                                                    }
                                                                    public void onDrawerOpened(View drawerView){
                                                                        ActivityCompat.invalidateOptionsMenu(MainActivity.this);
                                                                    }
                                             };

    drawerLayout.setDrawerListener(drawerToggle);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM