`

andr菜单

 
阅读更多
Android 菜单
菜单分为两种:系统菜单和上下文菜单。

系统菜单按Menu键出现,通过Activity 的 onCreateOptionsMenu 来创建,onOptionsItemSelected 来响应

上下文菜单是长按控件时出现(如常见的输入法选择), 需为控件单独安装 OnCreateContextMenuListener,  响应则是统一由Activity中的onContextItemSelected 来完成;

public class MenuTest extends Activity {  
    EditText txtInput;  
    Button   btnOK;  
       
    public void onCreate(Bundle savedInstanceState){  
        super.onCreate(savedInstanceState);  
        this.setContentView(R.layout.menutest);  
          
        //控件初始化  
        txtInput = (EditText)this.findViewById(R.id.txtInput);  
        txtInput.setOnCreateContextMenuListener(contextMenuListener);//为控件安装上下文菜单  
          
        btnOK = (Button)this.findViewById(R.id.btnOK);  
        btnOK.setOnCreateContextMenuListener(contextMenuListener);  
    }  
  
    /* 
     * 创建系统菜单 
     * @see android.app.Activity#onCreateOptionsMenu(android.view.Menu) 
     */  
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        super.onCreateOptionsMenu(menu);  
          
        //从菜单资源中创建菜单  
        MenuInflater inflater = this.getMenuInflater();  
        inflater.inflate(R.menu.menu, menu);  
          
        return true;  
    }  
      
    /* 
     * 系统菜单响应 
     * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem) 
     */  
    @Override  
    public boolean onOptionsItemSelected(MenuItem item) {  
        switch(item.getItemId()){  
        case R.id.menuOpen:  
            Toast.makeText(this, "Open", 5).show();  
            break;  
        case R.id.menuSave:  
            Toast.makeText(this, "Save", 5).show();  
            break;    
        case R.id.menuExit:  
            this.finish();  
            break;        
        }  
          
        return super.onOptionsItemSelected(item);  
    }  
  
       
    /* 
     * 创建上下文菜单 
     */  
    OnCreateContextMenuListener contextMenuListener = new OnCreateContextMenuListener(){  
        public void onCreateContextMenu(ContextMenu menu, View v,  
                ContextMenuInfo menuInfo) {           
            MenuInflater inflater = MenuTest.this.getMenuInflater();  
            inflater.inflate(R.menu.context, menu);   
              
            //程序方式添加菜单  
            menu.setHeaderTitle("输入法选择");  
            menu.add(0, 0, 0, "自定义输入法");  
        }  
    };   
  
    /* 
     * 上下文菜单响应 
     * @see android.app.Activity#onContextItemSelected(android.view.MenuItem) 
     */  
    @Override  
    public boolean onContextItemSelected(MenuItem item) {  
        String message = String.format("您选择了%s!", item.getTitle());  
        Toast.makeText(this, message, 5).show();  
        return super.onContextItemSelected(item);  
    }  
}  


系统菜单 Menu.xml
<?xml version="1.0" encoding="utf-8"?>  
<menu  
  xmlns:android="http://schemas.android.com/apk/res/android">  
    <group android:id="@+id/menuGroupMain">  
        <item android:id="@+id/menuOpen" android:title="Open" android:orderInCategory="1"></item>  
        <item android:id="@+id/menuSave" android:title="Save" android:orderInCategory="5"></item>  
        <item android:id="@+id/menuExit" android:title="Exit" android:orderInCategory="3"></item>  
    </group>  
</menu>


上下文菜单 Context.xml
<?xml version="1.0" encoding="utf-8"?>  
<menu  
  xmlns:android="http://schemas.android.com/apk/res/android">  
    <group android:id="@+id/groupContext" android:checkableBehavior="single">  
        <item android:title="谷歌拼音" android:id="@+id/menuOption1" android:checkable="true"></item>  
        <item android:title="搜狗拼音" android:id="@+id/menuOption2" android:checkable="true"></item>  
        <item android:title="HTC手写" android:id="@+id/menuOption3" ></item>  
    </group>  
</menu>  


其它文档: http://kb.cnblogs.com/page/78304/
分享到:
评论

相关推荐

    基于Andr oi d的火灾警报物联网实验研究.pdf

    (1)扫描连接设备:用户通过“扫描设备”菜单扫描到目标硬件,然后进行配对连接,以方便将后面检测结果传送到管理员的手机上。 (2)是否开启报警:管理员可以根据需要开启或关闭报警功能,以避免误报警。 (3)...

    RESPONSIVE-WEB-NEWSPAPER:基于图形设计的 Web 应用程序,可实现图像的响应式使用、响应式 CSS、响应式网页设计和 JavaScript 以实现汉堡菜单

    响应式网络报纸基于图形设计的 Web 应用程序,可实现图像的响应式使用、响应式 CSS、响应式网页设计和 JavaScript,以实现汉堡菜单。 下图显示了该应用程序的工作原理: 在小视口(移动... 作者:Andrés R. Bucheli。

    fab-speed-dial:FAB使用快速拨号隐喻提供可操作的菜单项

    晶圆厂快速拨号 结合在一起的简单库[FAB]( )+ [菜单资源]( [来自Material Design的快速拨号隐喻]( )。...menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.andr

    Android仿QQ分组实现二级菜单展示

    本文实例为大家分享了Android仿QQ分组实现二级菜单展示的具体代码,供大家参考,具体内容如下 首先展示下要实现的效果 动态查看请看链接 1.首先要定义item,也就是二级展示的item child_item.xml &lt;?xml version=...

    Android实现实时搜索框功能

    用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项后,按用户选择自动填写该文本框。 该组件继承EditText,所以它支持EditText组件提供的属性,同时,该组件该支持如下功能。...

    Android开发实现的简单计算器功能【附完整demo源码下载】

    在Android开发中,创建一个简单的计算器应用是一项常见的任务,它能帮助开发者熟悉UI设计、事件监听和基本的数学运算处理。... 首先,Android计算器通常由一系列按钮组成,包括数字0-9、加减乘除运算符、等于号以及...

    flexblog:Curso de CSS Flexbox na Origamid,教授安德烈·拉斐尔(AndréRafael)

    本课程“Flexblog: Curso de CSS Flexbox na Origamid”由知名讲师安德烈·拉斐尔(AndréRafael)主讲,旨在深入讲解这一强大的布局技术。 【Origamid】是一个广受欢迎的在线学习平台,专注于提供高质量的Web开发...

    Android5.0 旋转菜单实例详解

    先给大家展示下效果图: 这个效果是安卓5.0推出 “材料设计” Ui效果 以前一直没留意到,写篇文章当成备忘录 上面的效果图 用 DrawerLayout和Toolbar实现 布局如下 &lt;?xml version=1.0 encoding=utf-8?... andr

    AccuWeather Platinum 4.6.2.apk

    购股权的Andr​​oid菜单的一部分。 •在手机主屏幕上的状态栏显示当前温度为电流或家庭用户的位置。这是“通知”中的“设置”菜单下的用户定制。 •存储无限量的位置,以及多达10个喜爱的地点。从“位置”菜单选项...

    AccuWeather Platinum v3.3.2.7.paid已付费

    购股权的Andr​​oid菜单的一部分。 •在手机主屏幕上的状态栏显示当前温度为电流或家庭用户的位置。这是“通知”中的“设置”菜单下的用户定制。 •存储无限量的位置,以及多达10个喜爱的地点。从“位置”菜单选项...

    手机用fiddler抓包

    打开 Fiddler 菜单项 Tools-&gt;TelerikFiddler Options-&gt;HTTPS,勾选 Capture HTTPS CONNECTs,点击 Actions,勾选 Decrypt HTTPS traffic 和 Ignore server certificate errors 两项,点击 OK。第一次点击会弹出是否...

    Libraries For Developers 3.38

    *“的Andr​​oid-FB样滑出式导航”由Alex Korovyansky *“ActionsContentView”由史蒂芬鲁坚科 *“NewPopupMenu”frombyu1aryz *“UndoBar”由廖凯 *“PopupDemo”由诺兰劳森 *“弹出自定义”由unparallellogical *...

    SuperBottomBar:像android一样的Spotify材质底部导航栏库

    超级底吧 关于 Spotify就像android材质的底部导航栏库一样。 GIF 设计学分 所有设计和灵感来源均归。 设置 将其添加到存储库末尾的root build.gradle中: ... menu xmlns : android = " http://schemas.andr

    X-plore File Manager.apk

    主要交互是通过触摸屏完成后,单击文件夹或文件,打开文件,或长按以打开包含它可以在特定的点击过的商品或多个选定的项目进行选择上下文菜单。 多选择允许做的操作上更多的文件一次。文件可以通过单击复选框被选中...

    Android Studio 3.0 gradle提示版本太老

    4. 在Android Studio的底部工具栏点击“Sync Now”图标,或者在菜单栏选择“File” -&gt; “Sync Project with Gradle Files”。 此外,了解Gradle的工作原理和配置对于Android开发者来说至关重要。`build.gradle`文件...

    Android Studio和Gradle使用不同位置JDK的问题解决

    - 在弹出的菜单中选择“Project Structure”来打开项目结构配置窗口。 - 在左侧选项中找到“SDK Location”或类似的选项。 - 在该页面中,将“JDK location”字段的路径指向你已经安装的JDK路径。通常,这个路径...

    Android ListView实现简单列表功能

    ListView如何实现简单列表,供大家参考,具体内容如下 效果图: 啥也没干的ListView张这样: fry.Activity01 package fry; import com.example.ListView.R; import android.app.Activity;...import andr

    Atom-one-dark-theme,一个黑暗的主题崇高的文本。贡献给安德烈斯米切尔/one.zip

    这个主题由Andrés Miguel贡献,其特点是色彩搭配和谐,高对比度,使得代码结构清晰易读。 Atom是一个由GitHub开发的免费、开源的文本编辑器,它采用了Web技术如HTML、CSS和JavaScript构建。Atom的核心理念是可定制...

Global site tag (gtag.js) - Google Analytics