如何从导航抽屉启动活动?

Posted

技术标签:

【中文标题】如何从导航抽屉启动活动?【英文标题】:How to launch activity from Navigation Drawer? 【发布时间】:2014-06-30 20:25:10 【问题描述】:

所以我在这里搜索了有关导航抽屉的分配,当我被指向另一个人问题的答案中的教程时。我这样做了。

我成功地根据自己的喜好创建了导航抽屉并设置了样式。 但现在我一直在不知疲倦地寻找如何从导航抽屉中启动活动。我已经设法将一些代码放入 MainActivity 但单击该项目后它不会启动任何东西?所有活动都在清单中定义。我决定使用 Toasts 作为尝试和错误,仍然没有运气。

这是我用于导航抽屉和启动活动的代码。

// Drawer Activity        
// Get list items from strings.xml
drawerListViewItems = getResources().getStringArray(R.array.items);

// Get ListView defined in activity_main.xml
drawerListView = (ListView) findViewById(R.id.left_drawer);

// Set the adapter for the list view
drawerListView.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_listview_item, drawerListViewItems));
// Run Activity from drawer
drawerListView.setOnItemClickListener(new DrawerItemClickListener());

这是我的 DrawerItemClickListener 方法

private class DrawerItemClickListener implements ListView.OnItemClickListener 

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

    switch(position) 
      case 0:
          Intent a = new Intent(this, AppInfo.class);
              startActivity(a);
      break;
      case 1:
          Intent b = new Intent(getBaseContext(), WelcomeActivity.class);
           startActivity(b);
            
        
  

【问题讨论】:

【参考方案1】:

像这样替换 thisMainActivity.this

Intent a = new Intent(MainActivity.this, AppInfo.class);
startActivity(a);

也改变一下

drawerListView.setOnItemClickListener(new DrawerItemClickListener());

替换

drawerListView.setOnItemClickListener(this);

在那里查看Custom Adapter

【讨论】:

drawerListView.setOnItemClickListener(this);当我添加时,有错误。另外,当我打开导航抽屉并触摸并按住一个项目时,它没有选择,这是一个问题吗?如果我放手,导航抽屉就会关闭【参考方案2】:
Intent abc = new Intent(CurrentActivityName.this,TargetActivityName.class);
startActivity(abc);

这就是我一直这样做的方式,直接引用每个活动的名称。

【讨论】:

以上是关于如何从导航抽屉启动活动?的主要内容,如果未能解决你的问题,请参考以下文章

导航抽屉和工具栏出现在初始屏幕中

导航抽屉异步任务

如何在主片段中单击按钮时打开导航抽屉?

具有多个活动的导航抽屉。 - 空指针异常

带有活动和子片段的导航抽屉

导航抽屉:如何在启动时设置所选项目?