在Android中实现抽屉的问题

时间:2019-05-18 10:50:13

标签: android android-listview navigation-drawer

请查看我的问题,并查看我的活动Java代码中是否可能有问题。我无法找出错误:

我添加了两个抽屉-左侧的导航抽屉和右侧的listview抽屉。我的抽屉工作正常,但是我的活动没有响应任何点击。请注意,我只是添加了抽屉,没有处理任何点击(我打算稍后再解决此问题!)

我认为问题可能出在我的活动Java代码上。 我的活动中有关于我的抽屉的这段代码。如果需要,我可以提供布局文件。

public class SecondActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{

@Override
    public boolean onNavigationItemSelected(MenuItem item) {
        int id = item.getItemId();
        // Handle the actions accordingly for all menus
        if (id == R.id.nav_camera) {
        } else if (id == R.id.nav_gallery) {

        } else if (id == R.id.nav_slideshow) {

        } else if (id == R.id.nav_manage) {

        } else if (id == R.id.nav_share) {

        } else if (id == R.id.nav_send) {

        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);



        setContentView(R.layout.nav_layout);
        Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        DrawerLayout drawer=(DrawerLayout)findViewById(R.id.drawer_layout);
        DrawerLayout drawer2=(DrawerLayout)findViewById(R.id.drawer_layout2);
        ActionBarDrawerToggle toggle=new ActionBarDrawerToggle(this,drawer,toolbar,R.string.OPEN_DRAWER,R.string.CLOSE_DRAWER);
        ActionBarDrawerToggle toggle2=new ActionBarDrawerToggle(this,drawer2,toolbar,R.string.OPEN_DRAWER2,R.string.CLOSE_DRAWER2);
        drawer.addDrawerListener(toggle);
        drawer2.addDrawerListener(toggle2);
        toggle.syncState();
        toggle2.syncState();
        NavigationView navigationView=(NavigationView)findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
        mDrawerList=(ListView)findViewById(R.id.left_drawer);//this is actually right drawer
        CustomAdapter adapter=new CustomAdapter(this,R.layout.listview_item,mQuestionBank);
        mDrawerList.setAdapter(adapter);

}
 @Override
    public void onBackPressed()
    {
        DrawerLayout drawer=(DrawerLayout)findViewById(R.id.drawer_layout);
        DrawerLayout drawer2=(DrawerLayout)findViewById(R.id.drawer_layout2);
        if(drawer.isDrawerOpen(GravityCompat.START))
        {
            drawer.closeDrawer(GravityCompat.START);
        }
        else{
            super.onBackPressed();
        }
        if(drawer2.isDrawerOpen(GravityCompat.END))
        {
            drawer2.closeDrawer(GravityCompat.END);
        }
        else{
            super.onBackPressed();
        }

    }

我不知道我是否必须重写其他方法才能正常工作。在这种情况下,请告诉我。.预先感谢!

0 个答案:

没有答案