Android用纯Java来实现选项菜单中菜单、子菜单的布局设计以及简单交互功能

 

Android用纯Java来实现选项菜单中菜单、子菜单的布局设计以及简单交互功能

 

             ————安德风QQ1652102745

 

 

一、效果演示:

二、布局设计activity_main.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="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     <TextView
11         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 </androidx.constraintlayout.widget.ConstraintLayout>

三、功能实现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     @Override
16     protected void onCreate(Bundle savedInstanceState) {
17         super.onCreate(savedInstanceState);
18         setContentView(R.layout.activity_main);
19     }
20 
21     @Override
22     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");//为菜单一添加子菜单1
39         zcd1.add(1,2,0,"子菜单2");//为菜单一添加子菜单2
40         zcd1.add(1,3,0,"子菜单3");//为菜单一添加子菜单3
41         zcd1.add(1,4,0,"子菜单4");//为菜单一添加子菜单4
42         SubMenu zcd2=menu.addSubMenu("菜单2");//添加菜单二
43         zcd2.add(2,1,0,"子菜单1");//为菜单二添加子菜单1
44         zcd2.add(2,2,0,"子菜单2");//为菜单二添加子菜单2
45         zcd2.add(2,3,0,"子菜单3");//为菜单二添加子菜单3
46         zcd2.add(2,4,0,"子菜单4");//为菜单二添加子菜单4
47 
48 
49         return true;
50     }
51 
52     @SuppressLint("WrongConstant")
53     @Override
54     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"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

</menu>

 

posted @ 2020-05-11 12:48  安德风  阅读(1080)  评论(1编辑  收藏  举报