• 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>
  • 相关阅读:
    浮动清除
    解剖JavaScript中的null和undefined【转】
    关于innerHTML以及html2dom
    javascript 作用域
    4390. 【GDOI2016模拟3.16】图计数 (Standard IO)
    5049. 【GDOI2017模拟一试4.11】腐女的生日
    4273_NOIP2015模拟10.28B组_圣章-精灵使的魔法语
    jzoj_5631_(NOI2018模拟4.5)_A
    jzoj_1001_最难的问题_Floyd
    jzoj_3385_黑魔法师之门
  • 原文地址:https://www.cnblogs.com/adf520/p/12868396.html
Copyright © 2020-2023  润新知