开发者

Android入门之SubMenu的实现详解

目录
  • 简介
  • 项目结构
  • 前端代码
    • sub_mandroidenu.XML
  • 后端代码
    • MainActivity.Java
  • 运行效果

    简介

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

    Android入门之SubMenu的实现详解

    其实,它的原理很简单。

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

    项目结构

    Android入门之SubMenu的实现详解

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

    前端代码

    sub_menu.xml

    <?xml version="1.0" encoding="utf-8"YQmSTaprzR?>
    <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 = "子菜单二"/>
       开发者_Python学习             <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 anphpdroid.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, www.devze.comView 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:
               YQmSTaprzR     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的实现详解的文章就介绍到这了,更多相关Android SubMenu内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜