Android入门第35天-Android里的SubMenu
Posted TGITCIC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android入门第35天-Android里的SubMenu相关的知识,希望对你有一定的参考价值。
简介
我们延用在上一篇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入门第35天-Android里的SubMenu的主要内容,如果未能解决你的问题,请参考以下文章
Android入门第18天-Android里的SeekBar的使用
Android入门第16天-Android里的SwitchButton的使用
Android入门第30天-Android里的Toast的使用
Android入门第19天-Android里的RatingBar的使用