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

创建一个选项菜单的步骤:

 

第一种方法:

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. TitleRes

 

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 booleanonOptionsItemSelected(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 上传

你可能感兴趣的:(安卓开发)