如何简单创建Menu(菜单)

本文详细介绍了如何使用Java创建菜单主程序以及设置程序界面,包括导入必要的UI组件、定义主屏幕类和自定义菜单项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MenuMain为主程序,MenuMainScreen是对我们程序界面的设置。

下面我们来看一下代码:

MenuMain:

import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;


public class MenuMain extends UiApplication {
	public static void main(String[] args) {
		
		new MenuMain().enterEventDispatcher();
	}
	private MenuMain() 
    {
		MainScreen Menu = new MenuMainScreen();    
        Menu.setTitle( new LabelField("Dillon<Menu Demo>", LabelField.USE_ALL_WIDTH | LabelField.ELLIPSIS ));
        pushScreen( Menu );
    }
}

 MenuMainScreen:

import net.rim.device.api.ui.MenuItem;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.Menu;
import net.rim.device.api.ui.container.MainScreen;

public class MenuMainScreen extends MainScreen {
	private MenuItem _addItem = new AddItem();
	 
protected void makeMenu( Menu menu, int instance ) 
{
    super.makeMenu( menu, instance );

    menu.add( _addItem );  
}   
}
final class AddItem extends MenuItem
{
    AddItem() 
    {
        super("Add" , 100, 100 );
    }
	public void run() {
		Dialog.alert("Failure");
	}        
}
 
### Android 开发中创建 Menu 菜单的示例教程 在 Android 应用程序开发过程中,`Menu` 是一种常见的交互方式,可以通过 `Options Menu` 和 `Context Menu` 提供额外的功能入口。以下是关于如何在 Android 中创建菜单的具体实现。 #### 1. 创建 Options Menu (选项菜单)创建一个选项菜单,需要在目标 `Activity` 或者 `Fragment` 的类中重写 `onCreateOptionsMenu()` 方法,并调用 `getMenuInflater().inflate()` 来加载菜单资源文件[^3]。 ##### 步骤说明: - 首先,在 `res/menu/` 文件夹下定义 XML 布局文件(如果不存在则手动创建)。例如命名为 `options_menu.xml`。 ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 定义第一个菜单项 --> <item android:id="@+id/action_settings" android:title="Settings" /> <!-- 定义第二个菜单项 --> <item android:id="@+id/action_help" android:title="Help" /> </menu> ``` - 接着,在对应 `Activity` 中重写 `onCreateOptionsMenu()` 方法并加载上述 XML 文件。 ```java @Override public boolean onCreateOptionsMenu(Menu menu) { // 加载菜单资源文件 options_menu.xml 到 Menu 对象中 getMenuInflater().inflate(R.menu.options_menu, menu); return true; // 返回 true 表示启用菜单显示 } ``` 当用户点击设备上的菜单按钮或者屏幕右上角的三点图标时,系统会自动调用此方法并将菜单展示给用户[^4]。 --- #### 2. 处理菜单项的选择事件 为了响应用户的操作行为,还需要重写另一个重要函数——`onOptionsItemSelected()`,它负责处理每一个被选中的菜单项的动作。 ```java @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.action_settings: // 执行 Settings 功能逻辑 openSettings(); return true; case R.id.action_help: // 执行 Help 功能逻辑 showHelpDialog(); return true; default: return super.onOptionsItemSelected(item); } } private void openSettings() { Intent intent = new Intent(this, SettingsActivity.class); startActivity(intent); } private void showHelpDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Help").setMessage("This is the help dialog."); builder.setPositiveButton("OK", null).show(); } ``` 以上代码片段展示了如何针对不同的菜单项执行特定的操作[^1]。 --- #### 3. 创建 Context Menu (上下文菜单) 除了选项菜单外,还可以为某些视图组件绑定上下文菜单。这通常发生在用户长时间按下某个控件的时候触发。 ##### 实现过程如下: - **注册上下文菜单** 通过调用 `registerForContextMenu(View view)` 方法可以将任意视图与上下文菜单关联起来[^2]。 ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = findViewById(R.id.textView); registerForContextMenu(textView); // 注册上下文菜单至TextView } ``` - **覆盖 `onCreateContextMenu()` 函数** 每当用户长按已注册的视图时,都会触发该回调函数以便动态构建上下文菜单的内容。 ```java @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); getMenuInflater().inflate(R.menu.context_menu, menu); // 加载 context_menu.xml } ``` 同样也需要提供相应的监听器去捕获用户选择后的动作反馈。 ```java @Override public boolean onContextItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.copy_text: copyTextToClipboard(); return true; case R.id.share_text: shareTextWithOthers(); return true; default: return super.onContextItemSelected(item); } } ``` --- ### 总结 无论是简单的选项菜单还是复杂的上下文菜单,都可以借助于 Android SDK 提供的强大工具快速搭建完成。只需遵循标准流程即可轻松集成这些功能到自己的项目当中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值