android 动态menu
时间: 2023-10-13 18:06:37 浏览: 102
android动态菜单
4星 · 用户满意度95%
在 Android 中,动态创建菜单可以使用以下步骤:
1. 在 res/menu 目录下创建一个 XML 文件,定义菜单项的布局和属性。
2. 在 Activity 中重写 onCreateOptionsMenu() 方法,使用 MenuInflater.inflate() 方法加载菜单资源文件,并将菜单项添加到菜单中。
3. 在 Activity 中重写 onOptionsItemSelected() 方法,处理用户选择的菜单项。
下面是一个示例代码,演示如何动态创建菜单:
```java
public class MainActivity extends AppCompatActivity {
private Menu mMenu;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_menu, menu);
mMenu = menu;
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.menu_item1:
// Do something
return true;
case R.id.menu_item2:
// Do something
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void addMenuItem(int id, String title) {
if (mMenu != null) {
MenuItem item = mMenu.add(Menu.NONE, id, Menu.NONE, title);
item.setIcon(R.drawable.ic_launcher);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
}
public void removeMenuItem(int id) {
if (mMenu != null) {
mMenu.removeItem(id);
}
}
}
```
在上面的代码中,我们使用 onCreateOptionsMenu() 方法加载菜单资源文件,然后在 Activity 中定义了两个方法 addMenuItem() 和 removeMenuItem(),分别用于动态添加和移除菜单项。在每个菜单项的事件处理方法中,我们可以根据菜单项的 id 执行相应的操作。
阅读全文