您的位置:首页 > 其它

安卓 创建一个选项菜单的方法和步骤:

2013-08-15 21:00 435 查看
创建一个选项菜单的步骤:

第一种方法:

1、 覆盖Activity的onCreateOptionsMenu(Menumenu)函数

2、调用menu的add()方法添加菜单项(MenuItem),可以调用MenuItem的setIcon()方法来为菜单设置图标

3、当菜单项()被选择时,我们可以通过覆盖Activity的onOptionsItemSeleted()方法来响应事件



下面先来看下onCreateOptionsMenu()函数

public boolean onCreateOptionsMenu (Menu menu)

函数返回值:布尔值,表示是否显示该函数中设置的菜单

参数:Menu对象

onCreateOptionsMenu函数仅在第一次使用菜单时被调用一次。在这个函数我们可以通过Menu对象的add()方法添加菜单子项,这个函数有四个重载函数,下面分别介绍:

public abstract
MenuItem add (CharSequence title)


参数说明:指定菜单上的显示文字

1. publicboolean onCreateOptionsMenu(Menu menu) {
2.
3.
4.
5. menu.add("一个参数的add方法的菜单");
6.
7. menu.add("一个参数的add方法的菜单2");
8.
9. return true;
10.
11. }
12.
注意:这种方式添加的按钮是默认的垂直方式排列:效果如图1:



public abstract
MenuItem add (int titleRes)


参数说明:

titlerRes: 菜单标题的引用通过string.xml中添加

1. <stringname="titileRes">TitleRes</string>

1. publicboolean onCreateOptionsMenu(Menu menu) {
2.
3. menu.add(R.string.titileRes);
4.
5. return true;
6.
7. }

这个是最常用的方法参数说明:

groudId:是指组ID,用以批量地对菜单子项进行处理和排序

itemId:是子项ID,是每一个菜单子项的唯一标识

order:指定菜单子项在选项菜单中的排列顺序

titler: 菜单标题

1. publicboolean onCreateOptionsMenu(Menu menu) {
2.
3. menu.add(0, ITEM, 0, "开始");
4.
5. menu.add(0, ITME2, 0, "退出");
6.
7. }
效果:



为菜单添加响应事件覆盖

public boolean onOptionsItemSelected(MenuItem item)函数

// 通过点击了哪个菜单子项来改变Activity的标题

1. publicboolean onOptionsItemSelected(MenuItem item) {
2. switch (item.getItemId()) {
3. case ITEM:
4. setTitle("单击了菜单子项1");
5. break;
6.
7. case ITME2:
8. setTitle("单击了菜单子项2");
9. break;
10. }
11.
12. return true;
13.
14. }

综合实例:

1. packagecom.jiahui.activity;
2. importandroid.app.Activity;
3. importandroid.os.Bundle;
4. importandroid.view.Menu;
5. importandroid.view.MenuItem;

6.
7. publicclass MenuDemoActivity extends Activity {
8. private static final int ITEM = Menu.FIRST;
9. private static final int ITME2 = Menu.FIRST + 1;


publicvoid onCreate(Bundle savedInstanceState) {
10. super.onCreate(savedInstanceState);
11. setContentView(R.layout.main);
12.
13. }
14. publicboolean onCreateOptionsMenu(Menu menu) {
15. menu.add(0,ITEM, 0, "下载").setIcon(R.drawable.download);//设置图标
16. menu.add(0, ITME2, 0, "上传").setIcon(R.drawable.upload);
17.
18. return true;
19.
20. }
21.
22. //
通过点击了哪个菜单子项来改变Activity的标题
23.
24. publicboolean onOptionsItemSelected(MenuItem item) {
25.
26. switch (item.getItemId()) {
27. case ITEM:
28. setTitle("单击了菜单子项1");
29. break;
30. case ITME2:
31. setTitle("单击了菜单子项2");
32. break;
33. }
34. return true;
35.
36. }
37.
38. }
39.

第二种方法:

第二种方法是
在onCreateOptionsMenu中只加入这句语句,我们直接调用res文件下的menu文件下的main.xml
public
boolean
onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return
true
;
}0_1316308663PGmg.gif
(10.08 KB, 下载次数: 14)

我们在main.xml里面编辑
<item
android:id="@+id/about"
android:title="关于"
/>
<item
android:id="@+id/exit"
android:title="退出"/>

这样我们就可以直接在onOptionsItemSelected函数中直接编辑

public
boolean
onOptionsItemSelected(MenuItem item){
int item_id=item.getItemId();
switch (item_id) {
case R.id.about:
Toast toast =Toast.makeText(this,
"你点击的是about", Toast.LENGTH_SHORT);
toast.show();
break;

case R.id.exit:
MainActivity.this.finish();
break;
}
return
true
;

}
两种效果是一样的
下载附件 保存到相册

2011-9-18 13:29 上传
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: