目录
- 简介
- 项目结构
- 前端代码
- sub_mandroidenu.XML
- 后端代码
- MainActivity.Java
- 运行效果
简介
我们延用在上一篇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"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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
精彩评论