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

3

我已经在这里搜索了很多与导航抽屉相关的内容,当我从另一篇问题的答案中找到了一个教程时,我就开始学习。

我成功地创建并设计了我喜欢的导航抽屉。 但是现在我一直在搜索如何从导航抽屉启动活动。我已经将一些代码添加到MainActivity中,但单击项目时没有启动任何内容?所有活动都在清单中定义。我决定使用Toast进行试错,但仍然没有运气。

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

// 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);
            }
        }
  }
2个回答

3

this替换为MainActivity.this,就像这样:

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

同时更改那个

drawerListView.setOnItemClickListener(new DrawerItemClickListener());

替换

drawerListView.setOnItemClickListener(this);

请查看自定义适配器


当我添加了drawerListView.setOnItemClickListener(this);时,会出现错误。而且当我打开导航抽屉并触摸并长按某个项时,它不会被选中,这是一个问题吗?还有,如果我松开导航抽屉,它会关闭。 - Robin

2
Intent abc = new Intent(CurrentActivityName.this,TargetActivityName.class);
startActivity(abc);

这就是我一直以来的做法,直接引用每个活动的名称。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接