【问题标题】:Android navigation drawer default selected on startAndroid 导航抽屉默认在开始时选择
【发布时间】:2016-02-24 07:55:31
【问题描述】:

我使用导航抽屉活动创建了一个新的 android studio 项目。目前,当加载应用程序时,主活动开始(这是正常的),但我想将此主要活动与抽屉中的特定菜单项相关联,这样1)选择此菜单项时,主活动将加载,并且2) 我希望在应用首次启动时默认选择/突出显示该菜单项

我想我会在 onNavigationItemSelected 方法中使用意图处理问题 1,但我不确定如何默认选择菜单项。

我四处搜索,发现的唯一解决方案是指片段,但我没有在这个项目中使用片段(并且这些解决方案不起作用)。例如,我在onCreate()navigationView.getMenu().getItem(0).setChecked(true); 中尝试过selectItem(0);,但似乎都不起作用。

这是我的基本代码:

MainActivity.java:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "FAB Pressed", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

    }

activity_main_drawer.xml:

<item android:title="Menu">
        <menu>
            <group android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_new"
                    android:icon="@drawable/ic_menu_share"
                    android:title="@string/nav_new" />
                <item
                    android:id="@+id/nav_start"
                    android:icon="@drawable/ic_menu_slideshow"
                    android:title="@string/nav_start" />
                <item
                    android:id="@+id/nav_delete"
                    android:icon="@drawable/ic_menu_manage"
                    android:title="@string/nav_delete" />
            </group>
        </menu>
    </item>

除了菜单项之外,与开始项目相比没有太大变化。我希望默认选择 New 菜单项,因为我想将该项目与 MainActivity 相关联

【问题讨论】:

    标签: java android navigation-drawer drawerlayout


    【解决方案1】:

    你只需要添加代码:

    navigationView.setCheckedItem(R.id.nav_new);
    

    【讨论】:

    • 如何设置视图标题以匹配默认菜单选择
    【解决方案2】:

    我认为最好的方法是包含android:checked="true"

    <item android:title="Menu">
            <menu>
                <group android:checkableBehavior="single">
                    <item
                        android:id="@+id/nav_new"
                        android:icon="@drawable/ic_menu_share"
                        android:checked="true"
                        android:title="@string/nav_new" />
                    <item
                        android:id="@+id/nav_start"
                        android:icon="@drawable/ic_menu_slideshow"
                        android:title="@string/nav_start" />
                    <item
                        android:id="@+id/nav_delete"
                        android:icon="@drawable/ic_menu_manage"
                        android:title="@string/nav_delete" />
                </group>
            </menu>
        </item>
    

    希望对你有更多帮助

    【讨论】:

    • 告诉我你的结果
    猜你喜欢
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多