Android 通过xml创建菜单

本文介绍如何在Android应用中创建静态菜单,并通过XML布局文件定义菜单项。同时,展示了如何在Activity中加载并处理菜单事件,实现播放控制等功能。

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

一般情况下,开发者在res/Layout路径下来定义应用程序的GUI。应用Eclipse
创建一个新项目后,可以看到res/layout中存在一个 预置的main.xml文件,其
作为程序默认启动界面。同样,可以通过这种方式 创建一个静态的Menu,创建
方法参阅下边的源代码:
?View Code XML
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/previous"
android:title="@string/previous"
android:enabled="false"
android:icon="@android:drawable/ic_media_previous"/>
<!--these may not be available in next api (level > 3), so be carefull-->
<item
android:id="@+id/play_pause"
android:title="@string/play"
android:icon="@android:drawable/ic_media_play"/>
<item
android:id="@+id/next"
android:title="@string/next"
android:icon="@android:drawable/ic_menu_next"/>
</menu>
在Activity类中调用刚刚创建的Menu,首先将当前的Activity与指定的Menu XML相关联:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.layout.menu_mainactivity, menu);
return true;
}
实现onOptionsItemSelected方法: (其目的是捕捉到菜单触发事件后,对具体触
发的选项作出响应,实际调用的函数包含在各自的case中)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.previous:
previous(); //go to previous song in the playlist
return true;
case R.id.play_pause:
isPlaying() ? pause() : play(); //toggle play/pause
return true;
case R.id.next:
next(); //go to next song in the playlist
return true;
}
return false; //should never happen
}
最后可以通过onPrepareOptionMenu方法初始化Menu Items的属性:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
//set play_pause menu item look
if(isPlaying()) {
menu
.findItem(R.id.play_pause)
.setTitle(R.string.pause)
.setIcon(android.R.drawable.ic_media_pause);
} else {
menu
.findItem(R.id.play_pause)
.setTitle(R.string.play)
.setIcon(android.R.drawable.ic_media_play);
}
return true;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值