第二章吸引你的眼球—UI编程(8) - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

第二章吸引你的眼球—UI编程(8)

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:26

2.4 Menu键的┞焚唤—Menu菜单


应用Android手机的同伙应当敌手机的“Menu”键都不陌生吧。它应用起来便利、快捷,不须要占用应用的界面,正因为它的┞封些特点,我们如今有很多的应用都应用了Menu-菜单键。
Menu菜荡竽暌剐好几种类型,它们各有各的┞饭现情势,分别应用在不合的场合,以下我们一一对它们进话旧绍。
 
1)通俗的Menu(选项菜单)
    这是我们日常平凡应用最多、也是最常见的菜单,它就是当用户单击设毕喔赡菜单按键时弹出的菜单。它最多只能显示6个,跨越6个则第六个主动显示“更多”选项来展开显示。它的创建也很简单,在Activity中覆盖onCreateOptionsMenu(Menu menu)办法。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, 1, 1, "添加");
    menu.add(0, 2, 2, "删除");
    return super.onCreateOptionsMenu(menu);
}

 
在Menu的add办法中有四个参数:
第一个int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方法治理你的菜单按钮。
第二个int类型的item ID参数,代表的是项目编号。这个参数异常重要,一个item ID对应一个menu中的选项。在后面应用菜单的时刻,就靠这个item ID来断定你应用的是哪个选项。
 第三个int类型的order ID参数,代表的是菜单项的显示次序。默认是0,表示菜单的显示次序就是按照add的显示次序来显示。
 第四个String类型的title参数,表示选项中显示的文字。
按下Menu键后效不雅如图2-24所示:
[img]http://img.blog.csdn.net/20150104093228723
图2-24 通俗Menu的应用
 
当然,我们也可以给每一个菜单项设置零丁的搁笔:

menu.add(0, 1, 1, "添加").setIcon(R.drawable.add_no);
menu.add(0, 2, 2, "删除").setIcon(R.drawable.reduce_no);

 
效不雅如图2-25所示:
[img]http://img.blog.csdn.net/20150104093241952
图2-25 Menu添加搁笔
 
如许就有了“添加”和“删除”两个菜单选项。如不雅要添加点击事宜,则要覆盖onOptionsItemSelected(MenuItem item)办法。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == 1){
        Toast t = Toast.makeText(this, "钠揭捉的是添加菜单", Toast.LENGTH_SHORT);
        t.show();
} else if(item.getItemId() == 2){
        Toast t = Toast.makeText(this, "钠揭捉的是删除菜单", Toast.LENGTH_SHORT);
        t.show();
    }
    return true;
}

 
2)SubMenu(子菜单)
    如不雅刚才介绍的Menu为第一级按钮的话,SubMenu就是第二级按钮,它是将雷同功能的分组进行多级显示的菜单。
  SubMenu的应用也同样简单,在第一段代码onCreateOptionsMenu(Menu menu)办法中参加几句,成下面如许:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, 1, 1, "添加");
    menu.add(0, 2, 2, "删除");
    SubMenu subMenu = menu.addSubMenu(0, 3, 3, "修改");
    subMenu.add(1, 4, 1, "用户名修改");
subMenu.add(1, 5, 2, "暗码修改");  
return true;
}

 
点击“修改”后就会出现子菜单,有两个子选项,分别是“用户名修改”和“暗码修改”,效不雅如图2-26所示:
[img]http://img.blog.csdn.net/20150104093255976
图2-26 子菜单的应用
 
3)Context Menu(高低文菜单)
Context Menu类似于电脑上的右键,长按某个View之后弹出来的菜单。我们也来举个简单的例子加以解释。
起首在构造文件中定义一个按钮:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:id="@+id/test"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我的按钮"/>
</RelativeLayout>

 
然后我们在该Activity的onCreate办法里对这两个按钮进行注册,代码如下:

private Button myButton;
 
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    myButton = (Button) findViewById(R.id. my_button1);
    registerForContextMenu(myButton);   
}

 
注册好了之后,我们就可以覆盖onCreateContextMenu办法,在这办法中实现b1和b2两个按钮的长按事宜,代码如下:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
if(v== myButton){
            Toast.makeText(DialogActivity.this, "长按事宜", Toast.LENGTH_SHORT).show();
    }
    super.onCreateContextMenu(menu, v, menuInfo); }

 
我们长按按钮来看看效不雅,如图2-27所示:
[img]http://img.blog.csdn.net/20150104093311826?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXJ1aTMxOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
图2-27 高低文菜单的应用
 
我们应用的重要就是以上三种菜单,它们各有各的特点,应用在不合的场合。
其实很多时刻,我们比不是经由过程“硬编码”来创建菜单的,而是采取xml文件的方法。这种方法可以使代码和文件分别开来,使代码全部看上去加倍的清楚。创建起来也相当的便利、快捷。下面我们也举一个简单的例子加以解释。
起重要在res/目次下建一个文件夹,名为menu,接着在该文件夹下建一个名为menu_xml_file.xml的xml文件,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/grout_main">
        <item android:id="@+id/menu_1"
                android:title="Menu1"/>
        <item android:id="@+id/menu_2"
            android:title=" Menu2" />
</group>
</menu>

 
在Activity中覆盖onCreateOptionsMenu(Menu menu)办法,代码如下:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_xml_file, menu);
    return true;
}

 
如许Menu菜单就创建好了,效不雅如图2-28所示:
[img]http://img.blog.csdn.net/20150104093341171
图2-28 xml文件创建菜单
 
和之前一样,我们也可以经由过程ID监听它们的点击事宜。

相关案例查看更多