在Android中如何添加menu两种方法

Android界面开发之菜单Menu用法

Android手机用一个按键“Menu”专门来显示菜单,所以,当应用程序设置了菜单,我们便可以通过该按键来操作应用程序的菜单选项。

要实现菜单功能,首先需要通过方法onCreateOptionsMenu来创建菜单,然后需要对其能够触发的事件进行监听,这样才能够在事件监听onOptionsItemSelected中根据不同的菜单选项来执行不同的任务。当然,可以通过XML布局来实现,也可以通过menu.add方法来实现。下面的示例分别采用了这两种不同的方法来实现,效果如图4-31所示。点击键盘上的“Menu”按钮之后,界面如图4-32所示;当选择了“关于”项时,跳转到另一个界面,如图4-33所示:

      

1、通过XML布局来实现 首先在项目目录的“res”文件夹中建立“Menu”文件夹,然后在其中创建需要的菜单,代码如下:


1

2

3

4

5

6

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/about" android:title="关于">

        <item android:id="@+id/exit" android:title="退出">

        </item>

    </item>

</menu>

然后在onCreateOptionsMenu方法中通过onCreateOptionsMenu方法来装载这个菜单布局文件。在onOptionsItemSelected监听方法中通过getItemId方法获得当前选中的菜单的“Id",代码如下所示:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

package com.yarin.android.Examples_04_13;

 

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

 

public class Activity01 extends Activity

{

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

    }

 

    /*创建menu*/

    public boolean onCreateOptionsMenu(Menu menu)

    {

        MenuInflater inflater = getMenuInflater();

        //设置menu界面为res/menu/menu.xml

        inflater.inflate(R.menu.menu, menu);

        return true;

    }

 

    /*处理菜单事件*/

    public boolean onOptionsItemSelected(MenuItem item)

    {

        //得到当前选中的MenuItem的ID,

        int item_id = item.getItemId();

 

        switch (item_id)

        {

            case R.id.about:

                /* 新建一个Intent对象 */

                Intent intent = new Intent();

                /* 指定intent要启动的类 */

                intent.setClass(Activity01.this, Activity02.class);

                /* 启动一个新的Activity */

                startActivity(intent);

                /* 关闭当前的Activity */

                Activity01.this.finish();

                break;

            case R.id.exit:

                Activity01.this.finish();

                break;

        }

        return true;

    }

}

2、通过Menu.add方法实现 即在onCreateOptionsMenu方法中通过“menu.add(0,0,0,R.string.ok);”来实现创建一个菜单选项,代码如下所示:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

package com.yarin.android.Examples_04_13;

 

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

 

public class Activity02 extends Activity

{

    public void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        /* 设置显示main2.xml布局 */

        setContentView(R.layout.main2);

    }

 

    /*创建menu*/

    public boolean onCreateOptionsMenu(Menu menu)

    {

        //为menu添加内容

        menu.add(0, 0, 0, R.string.ok);

        menu.add(0, 1, 1, R.string.back);

        return true;

    }

 

    /*处理menu的事件*/

    public boolean onOptionsItemSelected(MenuItem item)

    {

        //得到当前选中的MenuItem的ID,

        int item_id = item.getItemId();

 

        switch (item_id)

        {

            case 0:

            case 1:

                /* 新建一个Intent对象 */

                Intent intent = new Intent();

                /* 指定intent要启动的类 */

                intent.setClass(Activity02.this, Activity01.class);

                /* 启动一个新的Activity */

                startActivity(intent);

                /* 关闭当前的Activity */

                Activity02.this.finish();

                break;

        }

        return true;

    }

}

时间: 2024-08-08 01:28:10

在Android中如何添加menu两种方法的相关文章

Android中返回Activity的两种方法

finish返回 finish(): 在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法. 当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放.因为移出了栈,所以当你点击手机上面的返回按键的时候,也不会再找到这个Activity. onDestory(): 系统销毁了这个Activity的实例在内存中占据的空间.在Activity的生命周期中,onDestory()方法是他生

Linux中生成密钥的两种方法

Linux中生成密钥的两种方法 SSH服务支持一种安全认证机制,即密钥认证.所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey), 任何人都可以看到其内容,用于加密:另一个称为密钥(privatekey),只有拥有者才能看到,用于解密.通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难. ssh的密钥认证就是使用了这一特性.服务器和客户端都各自拥有自己的公钥和密钥.如何使用密钥认证登录linux服务器呢? 在使用密钥认证远程登入linux之前,我们

MySQL中删除数据的两种方法

转自:http://blog.csdn.net/apache6/article/details/2778878 在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句. DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUNCATE TABLE将删除表中的所有记录.因此,DELETE语句更灵活. 如果要清空表中的所有记录,可以使用下面的两种方法: DELETE FROM table1 TRUNCATE TABLE table1 其

android中bitmap压缩的几种方法的解读

最近在研究微信的sdk,在缩略图这遇到了一点问题. 微信的缩略图要求是不大于32k,这就需要对我的图片进行压缩.试了几种方法,一一道来. 1.质量压缩法: 代码如下 ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos); int options = 100; while ( baos.toByteArray().length /

在Word中去除超链接的两种方法

本文来自e良师益友网 不少朋友都有这样一个疑问:在Word中输入网站地址,回车之后,先前输入的地址就自动转变为了蓝色的超链接,如果我们不想这样,该如何设置呢?下面,简单的介绍两种方法给大家参考. 方法一:运用自动更正选项 1.启动Word2003,在空白处直接输入网站地址之后,自动变为蓝色的超链接形式,我们仔细发现,首字母下有一道横线,光标移动至此,显示自动更正选项. 2.单击自动更正选项,有三个可供选择的,选择控制自动更正选项. 3.在键入时自动套用格式选项卡中,取消勾选Internet及网络

python中执行shell的两种方法总结

这篇文章主要介绍了python中执行shell的两种方法,有两种方法可以在Python中执行SHELL程序,方法一是使用Python的commands包,方法二则是使用subprocess包,这两个包均是Python现有的内置模块.需要的朋友可以参考借鉴,下面来一起看看吧. 一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: 该命令目前已经废弃,被s

转:在android中button响应的两种方式

1. 在布局文件中添加button的监听名字 Android:onClick="buttonOnClick" 例如: <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/button1&q

(原创)android中使用相机的两种方式

在社交类应用或扫描二维码的场合都需要用到手机上的摄像头 在程序中启用这一硬件主要有两类方法 1.发送intent启动系统自带的摄像应用 此应用的AndroidManifest中的intent-filter如下 <intent-filter> <action android:name="android.media.action.VIDEO_CAPTURE" /> <category android:name="android.intent.cate

Endnote在latex中的应用的两种方法

从endnote中向latex文档批量插入参考文献的两种方法 一.若是latex模板中参考文献编写的命令是: \begin{thebibliography} \bibitem{lab1}LIU M L, ZHANG Y H,ZHOU X H et al. Phys. Rev. C, 2004, {\bf 70}: 14---34 ... \end{thebibliography} 我们可以按照bibitem行的格式在endnote中编写相应的outstyle,然后即可批量从endnote中输出参