如何在Android中将菜单添加到按钮

赃物反赃物

现在,我有几个按钮在单击时会执行不同的操作,但是现在我希望其中一个按钮在单击时显示菜单,但是我不确定如何执行此操作。

对于主要按钮,我的代码如下所示:

public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()) {
            case R.id.button1:
                //do stuff
                break;
            case R.id.button2:
                //display menu
                break;
}

如果按下button2,我想显示选项列表,并查看用户选择的菜单项,但是我该怎么做?

在菜单XML中显示图标

   <item
        android:id="@+id/item_1"
        android:icon="@drawable/settings"
        android:showAsAction="always"
        android:title="Add item1" />
悉达思·莱尔

您可以使用PopupMenuInonOptionsItemSelected()菜单,当单击其中一个菜单按钮时,它将显示另一个菜单。根据您的需要修改这段代码:

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.button1:

            // DO SOMETHING HERE
            break;

        case R.id.button2:

            // THE R.id.button2 has to be the same as the item that will trigger the popup menu.
            View v = findViewById(R.id.button2);
            PopupMenu pm = new PopupMenu(LoginActivity.this, v);
            pm.getMenuInflater().inflate(R.menu.pm_accounts_item, pm.getMenu());
            pm.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    Toast.makeText(getApplicationContext(), String.valueOf(item.getTitle()), Toast.LENGTH_SHORT).show();
                    switch (item.getItemId())   {

                        case R.id.menuEdit:
                            break;

                        case R.id.menuDetails:
                            break;

                        case R.id.menuDelete:
                            break;

                        default:
                            break;
                    }
                    return true;
                }
            }); pm.show();

            break;

        default:
            break;
    }

    return false;
}

您会注意到,这一行增加了一个新的菜单XML:

pm.getMenuInflater().inflate(R.menu.pm_accounts_item, pm.getMenu());

您将不得不创建第二个菜单XML,其中包含单击按钮之一时需要显示的选项列表。这类似于您当前的菜单XML,不同之处在于选项集不同。

重要的!别忘了View v = findViewById(R.id.button2);在之前包含此内容PopupMenu pm....PopupMenu需要一个View锚定自身。但是该onOptionsItemSelected()方法根本不提供此功能。因此,额外的声明。

上面的示例说明了中的示例Activity要在中使用Fragment,请将更改View v = findViewById(R.id.button2);View v = getActivity().findViewById(R.id.button2);

这是最终结果:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中将图像添加到按钮

来自分类Dev

如何在NavigationView中将项目添加到菜单组

来自分类Dev

如何在Android中将按钮添加到推送通知中

来自分类Dev

如何在Android Xamarin中将按钮动态添加到视图中?

来自分类Dev

如何在Android Studio中将按钮添加到默认地图项目?

来自分类Dev

如何在wxPython中将子菜单项添加到弹出菜单项?

来自分类Dev

如何在Android中将子视图添加到ImageView

来自分类Dev

如何在Android中将TextView添加到GridView

来自分类Dev

如何在Android中将项目添加到快速设置

来自分类Dev

如何在Android中将位图图像添加到TextView

来自分类Dev

如何在Android中将标题添加到GridView?

来自分类Dev

如何在Windows 10中将exe添加到开始菜单?

来自分类Dev

如何在同一文件的HTML中将脚本添加到按钮?

来自分类Dev

如何在Windows Phone 8.1中将AppBarButton图标添加到常规按钮?

来自分类Dev

如何在AngularJS中将选中的类添加到单选按钮

来自分类Dev

iOS:如何在viewForHeaderInSection中将滑动删除按钮添加到自定义视图

来自分类Dev

如何在Xamarin Designer中将图像按钮添加到iOS故事板上?

来自分类Dev

如何在javascript中将按钮动态添加到阵列项列表

来自分类Dev

如何在AngularJS中将选中的类添加到单选按钮

来自分类Dev

如何在Windows Phone 8.1中将AppBarButton图标添加到常规按钮?

来自分类Dev

iOS:如何在viewForHeaderInSection中将滑动删除按钮添加到自定义视图

来自分类Dev

如何在D3.js中将点击按钮动态添加到html表中

来自分类Dev

在Android / Eclipse中将按钮添加到Java代码

来自分类Dev

如何在Visual Studio C#中将按钮单击事件添加到我自己的按钮中

来自分类Dev

如何在Windows 7中将图标添加到自定义上下文菜单项?

来自分类Dev

如何在任务栏上的Steam上下文菜单中将应用程序添加到Pinned

来自分类Dev

如何在我的Ubuntu手机中将应用程序添加到unity的启动器菜单中

来自分类Dev

如何在Android中的for循环的每次迭代中将值添加到HashMap

来自分类Dev

如何在Android中将数据添加到现有的.txt文件

Related 相关文章

  1. 1

    如何在Android中将图像添加到按钮

  2. 2

    如何在NavigationView中将项目添加到菜单组

  3. 3

    如何在Android中将按钮添加到推送通知中

  4. 4

    如何在Android Xamarin中将按钮动态添加到视图中?

  5. 5

    如何在Android Studio中将按钮添加到默认地图项目?

  6. 6

    如何在wxPython中将子菜单项添加到弹出菜单项?

  7. 7

    如何在Android中将子视图添加到ImageView

  8. 8

    如何在Android中将TextView添加到GridView

  9. 9

    如何在Android中将项目添加到快速设置

  10. 10

    如何在Android中将位图图像添加到TextView

  11. 11

    如何在Android中将标题添加到GridView?

  12. 12

    如何在Windows 10中将exe添加到开始菜单?

  13. 13

    如何在同一文件的HTML中将脚本添加到按钮?

  14. 14

    如何在Windows Phone 8.1中将AppBarButton图标添加到常规按钮?

  15. 15

    如何在AngularJS中将选中的类添加到单选按钮

  16. 16

    iOS:如何在viewForHeaderInSection中将滑动删除按钮添加到自定义视图

  17. 17

    如何在Xamarin Designer中将图像按钮添加到iOS故事板上?

  18. 18

    如何在javascript中将按钮动态添加到阵列项列表

  19. 19

    如何在AngularJS中将选中的类添加到单选按钮

  20. 20

    如何在Windows Phone 8.1中将AppBarButton图标添加到常规按钮?

  21. 21

    iOS:如何在viewForHeaderInSection中将滑动删除按钮添加到自定义视图

  22. 22

    如何在D3.js中将点击按钮动态添加到html表中

  23. 23

    在Android / Eclipse中将按钮添加到Java代码

  24. 24

    如何在Visual Studio C#中将按钮单击事件添加到我自己的按钮中

  25. 25

    如何在Windows 7中将图标添加到自定义上下文菜单项?

  26. 26

    如何在任务栏上的Steam上下文菜单中将应用程序添加到Pinned

  27. 27

    如何在我的Ubuntu手机中将应用程序添加到unity的启动器菜单中

  28. 28

    如何在Android中的for循环的每次迭代中将值添加到HashMap

  29. 29

    如何在Android中将数据添加到现有的.txt文件

热门标签

归档