注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

快乐的机器猫 大桥加加网易分站

要有更宽广的视野和胸怀

 
 
 

日志

 
 

android应用开发揭秘examples_04-13笔记(Menu的2种实现方式)  

2011-07-28 23:07:18|  分类: android开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
两种方式实现OptionMenu即按下手机上的Menu键的显示功能。
1.  在menu.xml 中 静态定义, 之后以MenuInflater.inflate 方式调用
2.  动态使用menu.add()调用;
//menu.add()里面有四个参数依次是:
     //第一个,组别。
     //第二个,ID。是menu识别编号,供识别menu用的。很重要。
     //第三个,顺序。这个参数的大小决定菜单出现的先后顺序。顺序是参数由小到大,菜单从左到右,从上到下排列。一行最多三个。
     //第四个,显示文本。
以上两种方式共同点是都在onCreateOptionsMenu(){ } 实现调用代码

-----------------------------------------------------------------------

子目录res/menu/menu.xml中
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/about"
          android:title="关于" />
    <item android:id="@+id/exit"
          android:title="退出" />
</menu>
然后设计2个 Activity 分别用来静态和动态实现菜单
---------------------------------------------------------------------
//Activity01.java
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;
    }

}

---------------------------------------------------------------------
//Activity02.java
package com.yarin.android.Examples_04_13;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

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:
                DisplayToast("OK");
                break;
            case 1:
                /* 新建一个Intent对象 */
                Intent intent = new Intent();
                /* 指定intent要启动的类 */
                intent.setClass(Activity02.this, Activity01.class);
                /* 启动一个新的Activity */
                startActivity(intent);
                /* 关闭当前的Activity */
                Activity02.this.finish();
                break;
        }
        return true;
    }


    /* 显示Toast  */
    public void DisplayToast(String str)
    {
        Toast toast = Toast.makeText(this, str, Toast.LENGTH_LONG);
        //设置toast显示的位置
        toast.setGravity(Gravity.TOP, 0, 220);
        //显示该Toast
        toast.show();
    }
}
  评论这张
 
阅读(158)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018