Second

Android菜单系统详解
本文详细介绍了Android中的三种菜单系统:系统菜单、上下文菜单和弹出菜单的创建及使用方法。包括XML配置、代码实现、事件监听等关键步骤,适合初学者掌握Android菜单的基本操作。

Menu菜单

方法较多,需要记忆

系统菜单

效果:

系统弹出菜单效果1
系统弹出菜单效果2
注意:这并不是某些软件的+号,不能与之混淆
一个Activity只有一个系统菜单

代码:

<item android:id="@+id/blue" android:title="蓝色" app:showAsAction="never"></item>
    <item android:id="@+id/red" android:title="红色"></item>

在res下创建menu文件夹并新建xml文件
每个item都要加入id
showAsAction------菜单项在按钮上的显示方式

alaways:菜单项一直显示在ActionBar上

ifRoom:如果有足够的空间,菜单会显示在ActionBar上

never:菜单永远不会出现在ActionBar上

.withText:菜单图标,菜单文本一起显示

(个人借用,如有侵权,请速告,立删)

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu,menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id=item.getItemId();
        switch (id){
            case R.id.blue:
                Toast.makeText(MainActivity.this,"蓝色",Toast.LENGTH_SHORT).show();
                break;
            case R.id.red:
                Toast.makeText(MainActivity.this,"红色",Toast.LENGTH_SHORT).show();
                break;
        }
        return super.onOptionsItemSelected(item);
    }

onCreateOptionsMenu----在activity中重写,加载xml文件
直接调用getMenuInflater().inflate(R.menu.menu,menu) 方法 参数为: xml文件和menu

onOptionsItemSelected----在activity中重写,设置事件监听

上下文菜单

效果:

上下文菜单效果
触发需要长按

代码:

 registerForContextMenu(text);//绑定相应的控件,在oncreate中



@Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        getMenuInflater().inflate(R.menu.menu,menu);
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        int id=item.getItemId();
        switch (id){
            case R.id.blue:
                Toast.makeText(MainActivity.this,"蓝色",Toast.LENGTH_SHORT).show();
                break;
            case R.id.red:
                Toast.makeText(MainActivity.this,"红色",Toast.LENGTH_SHORT).show();
                break;
        }
        return super.onContextItemSelected(item);
    }

onCreateContextMenu----在activity中重写,加载xml文件

onContextItemSelected----在activity中重写,设置事件监听

弹出菜单

效果:弹出菜单效果

默认弹出的位置在控件view的下方

代码:

 PopupMenu popupMenu=new PopupMenu(MainActivity.this,text);
                popupMenu.inflate(R.menu.menu);
                popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        int id=item.getItemId();
                        switch (id){
                            case R.id.blue:
                                Toast.makeText(MainActivity.this,"蓝色",Toast.LENGTH_SHORT).show();
                                break;
                            case R.id.red:
                                Toast.makeText(MainActivity.this,"红色",Toast.LENGTH_SHORT).show();
                                break;
                        }
                        return false;
                    }
                });
                popupMenu.show();

在点击监听中写入
实例化PopupMenu 生成对象
构造函数参数: 上下文, 指定的控件
inflate-----设置布局
setOnMenuItemClickListener-----设置监听
最后要调用该对象的show 方法
内容不多,但是却是较为实用的基础,虽然现在流行的app不使用…但是第三天的课程却与此类似,需用心学习第三日课程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值