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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM