单击菜单下拉后如何运行代码?

时间:2017-06-15 01:14:29

标签: android drop-down-menu android-actionbar

在我的Android应用程序中,我有一个操作栏,上面有一个按钮。当我按下按钮时,屏幕上会出现三个下拉选项。我希望能够在用户按下其中一个按钮时运行代码,例如运行函数或转到其他活动。我的menu.xml格式如此,工作正常。当你按下按钮时,我没有办法让按钮做事。

<item
    android:id="@+id/dropMenu"
    android:title=""
    app:showAsAction="always"
    android:icon="@drawable/threedots">
    <menu>
        <item
            android:id="@+id/pastDays"
            android:title="Past Days" />
        <item
            android:id="@+id/aboutApp"
            android:title="About App" />
        <item
            android:id="@+id/setNotifications"
            android:title="Set Notifications" />
    </menu>
</item>

2 个答案:

答案 0 :(得分:0)

首先使用重写方法onCreateOptionsMenu(),按如下方式对菜单进行充气:

sortBy()

...以及单击其中一个菜单项时的功能:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu); // TODO: First param is your menu file

    return super.onCreateOptionsMenu(menu);
}

答案 1 :(得分:0)

在您的活动中,重写onOptionsItemSelected()方法,如下所示:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId()==android.R.id.home){
        mDrawerLayout.openDrawer(GravityCompat.START);
    }
    if (item.getItemId()==R.id.pastDays){
        //Do something
    }
    if (item.getItemId()==R.id.aboutApp){
        //Do something
    }
    if (item.getItemId()==R.id.setNotifications){
        //Do something
    }

    return super.onOptionsItemSelected(item);
}