在操作栏中添加菜单

10

我有一个 Action Bar,在其中想要使用菜单添加一个帮助按钮。我正在使用 Android 3.0。 我的菜单代码如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item  
    android:id="@+id/help_btn"
    android:icon="@drawable/help"
    android:title="Help"
    android:showAsAction="ifRoom|withText"
/>

现在我该如何将这个菜单添加到操作栏中呢?

4个回答

26

但是isOptionsMenu(Menu menu)方法适用于Android 3.0吗?因为当我在我的活动中编写该方法时,它没有被调用。 - Arindam Mukherjee
以下是我的Activity代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_ACTION_BAR); Log.d("Debug", "It is coming here::::::::::::"); setContentView(R.layout.main); }public boolean onCreateOptionMenus(Menu menu) { Log.d("Debug", "It is coming here"); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menus, menu); return true; } - Arindam Mukherjee
但它没有调用onCreateOptionsMenu(Menu menu)方法。 - Arindam Mukherjee
你的 API 版本目标是什么? - Michell Bak
很奇怪。你在使用Holo主题吗? - Michell Bak
显示剩余2条评论

3

更新:

您可以像这样展开菜单 @override

将其放入 res/menu/YOUR_MENU.xml 中

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.YOUR_MENU, menu);
    return true;
}

2

我知道这是一个比较老的问题,但我仍然会回答它。如果你正在处理一个Fragment,你需要让系统知道你想要为操作栏做出贡献,否则onCreateOptionsMenu永远不会被调用。https://stackoverflow.com/a/10049807/725752


是的!谢谢。如果您尝试从片段修改操作栏菜单项,则绝对必须从onCreateView()中调用此函数。 - Shane Sepac

0
现在有了 Jetpack Compose,您不需要单独的菜单 XML 文件。
Scaffold(
                modifier = Modifier.fillMaxSize(),
                topBar= {
                    TopAppBar(
                        title = {
                            Text(text = "Create New Recipe")
                        },
                        navigationIcon = {
                            IconButton(onClick = { }) {
                                Icon(
                                    imageVector = Icons.Filled.ArrowBack,
                                    contentDescription = "Back"
                                )
                            }
                        },
                        backgroundColor = Color.Blue,
                        contentColor = Color.White,
                        elevation = 2.dp,
                        actions = {
                            IconButton(onClick = {
                                uiController.hideSoftKeyboard()

                                ...
                            }) {
                                Icon(
                                    contentDescription = "Help",
                                    painter = painterResource(R.drawable.help)
                                )
                            }
                        }
                    )
                }, content = {
                    }
                })

这里 topBar 包含了操作栏的代码,而actions 则包含了菜单按钮的代码。

参考- https://androidlearnersite.wordpress.com/2021/08/03/jetpack-compose-1-0-0-sample-codes/


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