我在 Google 的 Navigation Drawer 中遇到了这个问题,其中在我的 selectItem 方法中启动第一个案例(案例 0)中指定的 Activity 会中断并返回到前一个 Activity 。

private class DrawerItemClickListener implements ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
                            int position, long id) {
            selectItem(position);
    }
}

private void selectItem(int position) {
    switch(position) {
    case 0:
        // Placing any startActivity here will load the activity
        // but immediately return to the calling activity.
        parent.startActivity(new Intent(parent, Dashboard.class));
        break;
    case 1:
        parent.startActivity(new Intent(parent, Card.class));
        break;
    }
}

但是如果我放 mDrawerLayout.closeDrawer(mDrawerList); 或任何其他代码,它会正常工作。

当被调用的 Activity 关闭并且没有抛出异常时,没有报告错误。有什么想法吗?

最佳答案

我尝试重现此内容,但无法解析父级。你有没有在其他地方声明过?

你在 Activity 和 fragment 中使用什么类可以使用 startActivity() 而不需要 parent.startActivity()

可以发完整的课吗?

这对我有用。

private void selectItem(int position) {


    switch (position) {
    case 0:
        // goto home screen
        Log.d(TAG, "Showing Home");

        startActivity(new Intent(this, SettingsActivity.class));
        break;

    case 1:
        // Show Editor
        Log.d(TAG, "Showing Editor");

        break;

    default:

        break;

    }

}

关于java - 在 selectItem 的第一种情况下使用 startActivity 时,抽屉导航不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18247256/

10-12 01:50