【问题标题】:Navigation drawer items click is not working on other activities导航抽屉项目单击不适用于其他活动
【发布时间】:2018-09-08 18:34:43
【问题描述】:

我正在尝试单击导航抽屉项目但不工作。

我制作了一个 NavigationDrawerActivity(默认情况下:创建新项目)和一个 AriesActivity(新活动)。当我使用 NavigationDrawerActivity 时,项目单击有效。但是当我使用 AriesActivity 时,项目点击不起作用。
在这里,我在 AriesActivity 上添加了 抽屉图标,点击图标导航抽屉打开,但项目点击不起作用。

所以主要问题是如何通过在其他活动中包含抽屉来处理对其他活动的导航项的点击?

这是我的 AriesActivity 代码

  public class AriesActivity extends AppCompatActivity {

    Toolbar mtoolbar;
    private DrawerLayout drawerLayout;

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

        //setting TOOLBAR on this activity(page)
        mtoolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(mtoolbar);
        Objects.requireNonNull(getSupportActionBar()).setTitle(null);


        //setting DRAWER on this activity(page)
        drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, mtoolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawerLayout.addDrawerListener(toggle);
        toggle.syncState();
   }
}

【问题讨论】:

  • 这是你的完整课程代码吗?

标签: android navigation-drawer


【解决方案1】:

你必须重写这个方法(onNavigationItemSelected)例子:

 @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.nav_gallery) {
            startActivity(new Intent(Activity1.this, Activity2.class));
            finish();
        } else if (id == R.id.nav_slideshow) {
            startActivity(new Intent(Activity2.this, Activity1.class));
            finish();
        } 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;
    }

【讨论】:

  • 我必须在哪个活动中重写此方法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-03
相关资源
最近更新 更多