Android入门之SubMenu的实现详解

 更新时间:2022年11月25日 08:57:34   作者:TGITCIC  
这篇文章主要为大家详细介绍了Android如何实现SubMenu子菜单的效果,文中的示例代码讲解详细,对我们学习Android有一定的帮助,感兴趣的可以了解一下

简介

我们延用在上一篇Menu篇里的例子,把这个ContextMenu里套一层子菜单。

其实,它的原理很简单。

就是在ContextMenu的:public void onCreateContextMenu方法里,用inflator.inflate(R.menu.sub_menu, menu);加载一个外部的sub_menu。

项目结构

很简单,一点不难。来看代码。

前端代码

sub_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/submenu" android:title="子菜单使用演示~">
        <menu>
            <group android:checkableBehavior = "none">
                <item android:id="@+id/one" android:title = "子菜单一"/>
                <item android:id="@+id/two" android:title = "子菜单二"/>
                <item android:id="@+id/three" android:title = "子菜单三"/>
            </group>
        </menu>
    </item>
</menu>

后端代码

MainActivity.java

package org.mk.android.demosubmenu;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity {
    private Button btnShowMenu;
    private TextView viewContext;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewContext=(TextView)findViewById(R.id.viewContext);
        registerForContextMenu(viewContext);
    }
    @Override
    //重写上下文菜单的创建方法
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenu.ContextMenuInfo menuInfo) {
 
        //子菜单部分:
        MenuInflater inflator = new MenuInflater(this);
        inflator.inflate(R.menu.sub_menu, menu);
        super.onCreateContextMenu(menu, v, menuInfo);
 
 
    }
 
    //上下文菜单被点击是触发该方法
    @Override
    public boolean onContextItemSelected(MenuItem item) {
 
 
        switch (item.getItemId()) {
            case R.id.one:
                Toast.makeText(MainActivity.this,"你点击了子菜单一",Toast.LENGTH_SHORT).show();
                break;
            case R.id.two:
                item.setCheckable(true);
                Toast.makeText(MainActivity.this,"你点击了子菜单二",Toast.LENGTH_SHORT).show();
                break;
            case R.id.three:
                Toast.makeText(MainActivity.this,"你点击了子菜单三",Toast.LENGTH_SHORT).show();
                item.setCheckable(true);
                break;
        }
        return true;
 
    }
}

运行效果

我们以Toast来显示不同的子菜单选择后的效果即可。

到此这篇关于Android入门之SubMenu的实现详解的文章就介绍到这了,更多相关Android SubMenu内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ffmpeg实现去水印以及切分视频demo

    ffmpeg实现去水印以及切分视频demo

    这篇文章主要为大家介绍了ffmpeg实现去水印以及切分视频demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Android实例代码理解设计模式SOLID六大原则

    Android实例代码理解设计模式SOLID六大原则

    程序设计领域, SOLID (单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期 引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的基本原则
    2021-10-10
  • Android TextView添加超链接的方法示例

    Android TextView添加超链接的方法示例

    这篇文章主要介绍了Android TextView添加超链接的方法,结合实例形式分析了TextView控件添加HTML超链接的实现技巧,需要的朋友可以参考下
    2016-10-10
  • android从资源文件中读取文件流并显示的方法

    android从资源文件中读取文件流并显示的方法

    这篇文章主要介绍了android从资源文件中读取文件流并显示的方法,涉及Android针对文件的读取及显示技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Android自定义商品购买数量加减控件

    Android自定义商品购买数量加减控件

    这篇文章主要为大家详细介绍了Android自定义商品购买数量加减控件的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • android开发之横向滚动/竖向滚动的ListView(固定列头)

    android开发之横向滚动/竖向滚动的ListView(固定列头)

    由于项目需要,我们需要一个可以横向滚动的,又可以竖向滚动的 表格;经过几天的研究终于搞定,感兴趣的朋友可以了解下哦
    2013-01-01
  • Android中的Shape和Selector的结合使用实例

    Android中的Shape和Selector的结合使用实例

    这篇文章主要介绍了Android中的Shape和Selector的结合使用实例,本文直接给出实例代码,需要的朋友可以参考下
    2015-06-06
  • Android端内数据状态同步方案VM-Mapping详解

    Android端内数据状态同步方案VM-Mapping详解

    这篇文章主要介绍了Android端内数据状态同步方案VM-Mapping详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • Android 实现定时任务的过程详解

    Android 实现定时任务的过程详解

    这篇文章主要介绍了Android 定时任务过程详解的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • 使用Android WebSocket实现即时通讯功能

    使用Android WebSocket实现即时通讯功能

    即时通讯(Instant Messaging)最重要的毫无疑问就是即时,不能有明显的延迟,要实现IM的功能其实并不难,目前有很多第三方,比如极光的JMessage,都比较容易实现。本文通过实例代码给大家分享Android WebSocket实现即时通讯功能,一起看看吧
    2019-10-10

最新评论