Android用纯Java来实现选项菜单中菜单、子菜单的布局设计以及简单交互功能
16lz
2021-01-26
Android用纯Java来实现选项菜单中菜单、子菜单的布局设计以及简单交互功能
————安德风QQ1652102745
一、效果演示:
二、布局设计activity_main.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 "http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:background="@drawable/beijing" 8 tools:context=".MainActivity"> 9 10 <TextView11 android:layout_width="267dp"12 android:layout_height="47dp"13 android:text="你好,安德风"14 android:textColor="#FFFFFF"15 android:textSize="34sp"16 app:layout_constraintBottom_toBottomOf="parent"17 app:layout_constraintLeft_toLeftOf="parent"18 app:layout_constraintRight_toRightOf="parent"19 app:layout_constraintTop_toTopOf="parent" />20 21
三、功能实现MainActivity.java
1 package com.example.xzjhomework04; 2 3 import androidx.annotation.NonNull; 4 import androidx.appcompat.app.AppCompatActivity; 5 6 import android.annotation.SuppressLint; 7 import android.os.Bundle; 8 import android.view.Menu; 9 import android.view.MenuItem;10 import android.view.SubMenu;11 import android.widget.Toast;12 13 public class MainActivity extends AppCompatActivity {14 15 @Override16 protected void onCreate(Bundle savedInstanceState) {17 super.onCreate(savedInstanceState);18 setContentView(R.layout.activity_main);19 }20 21 @Override22 public boolean onCreateOptionsMenu(Menu menu) {23 getMenuInflater().inflate(R.menu.optionmenu,menu);24 25 //SubMenu方法的运用实现菜单与子菜单的建立26 //添加菜单选项27 SubMenu zcd1=menu.addSubMenu("菜单1");//添加菜单一28 //添加子菜单选项29 /*30 * add方法的参数说明:31 * 参数一:group ID(int) :组ID,用于标示该子选项属于哪一个组32 * 参数二:item ID(int) :子选项ID,用于标示该子选项33 * 参数三:order ID(int): 显示顺序,用于标示该子选项显示顺序,默认为0,表示按添加顺序显示34 * 参数四:title (String): 用于定义该子选项的显示文字35 *36 * */37 38 zcd1.add(1,1,0,"子菜单1");//为菜单一添加子菜单139 zcd1.add(1,2,0,"子菜单2");//为菜单一添加子菜单240 zcd1.add(1,3,0,"子菜单3");//为菜单一添加子菜单341 zcd1.add(1,4,0,"子菜单4");//为菜单一添加子菜单442 SubMenu zcd2=menu.addSubMenu("菜单2");//添加菜单二43 zcd2.add(2,1,0,"子菜单1");//为菜单二添加子菜单144 zcd2.add(2,2,0,"子菜单2");//为菜单二添加子菜单245 zcd2.add(2,3,0,"子菜单3");//为菜单二添加子菜单346 zcd2.add(2,4,0,"子菜单4");//为菜单二添加子菜单447 48 49 return true;50 }51 52 @SuppressLint("WrongConstant")53 @Override54 public boolean onOptionsItemSelected(@NonNull MenuItem item) {55 String title="选择了"+item.getTitle().toString();56 int itemId = item.getItemId();57 if(itemId!=0){ //如果不是父级菜单,即子菜单58 String tstStr = "选中的是菜单"59 +item.getGroupId()+"中的子菜单"+itemId;60 Toast.makeText(this,tstStr,3000).show();61 }62 return super.onOptionsItemSelected(item);63 64 65 }66 }
四、菜单布局文件optionmenu.xml
<?xml version="1.0" encoding="utf-8"?>
更多相关文章
- 使用安卓SerialManagerService
- android PopupWindow模拟Windows开始菜单显示消失效果
- Litepal的简单使用
- ViewRoot/ViewRootImpl分析
- 在android里用ExpandableListView实现二层和三层列表源码
- 仿QQ下拉菜单列表 自定义Spinner
- Android(安卓)Studio 如何快速添加override或者implements方法
- 【Android】常量DEFAULT_KEYS_SHORTCUT 功能的验证 及其 源码实
- framework中自定义系统级权限