Android学习之菜单的使用方法

Gamila ·
更新时间:2024-09-20
· 1639 次阅读

本文实例为大家分享了Android学习之菜单使用的具体代码,供大家参考,具体内容如下

Android中菜单包含上下文菜单和选项菜单两种类型。

使用统一的菜单类来管理菜单:

Menu、MenuItem、SubMenu三个类。

1.Menu类:

一个Menu对象代表一个菜单,是整个菜单的基础。
Menu类的常用方法:添加一个菜单:add(int groupId, int itemId, int order, CharSequence title)

2.MenuItem类:

MenuItem代表一个菜单项;
MenuItem往往是通过Menu的add方法来获取的。

3.subMenu类:

subMenu继承自Menu,其代表一个子菜单。

Menu、MenuItem、SubMenu的使用:
Menu通过add方法,来添加菜单项MenuItem并返回;
Menu通过addSubMenu方法,来添加自菜单SubMenu并返回;
通过MenuItem的多个方法,来设定菜单项的状态;
SubMenu继承自Menu,用相同方法,添加MenuItem及SubMenu;
通过SubMenu的多个方法,设定SubMenu的状态。

1.ContextMenu(上下文菜单):

ContextMenu(上下文菜单)类似于PC中的右键弹出菜单,当一个视图注册了上下文菜单时,长按该视图对象将出现一个提供相关功能的浮动菜单。上下文菜单可以被注册到任何视图对象中,最常见的是用于列表视图ListView中,但上下文菜单不支持图标和快捷键。

使用步骤如下:

(1)在Activity中使用上下文菜单,复写onCreateContextMenu() 和 onContextItemSelected()方法;
(2)为视图控件View中注册上下文菜单,使用registerForContextMenu()方法;
(3)在onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo info)中添加菜单项menu.add();
(4)在onContextItemSelected()中通过设置菜单的id来实现菜单子项的监听。

ContextMenu在Activity中的回调函数:

onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo info) //初始化,第一次调用菜单时执行,用于创建菜单项目 onContextItemSelected(MenuItem item) //菜单项被选中后调用,用于处理菜单事件,根据传递的item参数,确定具体的菜单项,进行设计 onContextMenuClosed(Menu menu) //菜单被关闭时调用 ``

2.OptionsMenu(选项菜单):

使用步骤如下:

(1)在Activity中复写onCreateOptionsMenu()和onOptionsItemSelected()方法;

(2)在onCreateOptionsMenu(Menu menu)中添加菜单选项,有两种方式:

a、调用menu.add()
b、从布局文件中添加,在res下新建menu文件夹,创建menu文件,填写相应的选项;

(2)为视图控件View中注册上下文菜单,使用registerForContextMenu()方法;

OptionsMenu选项菜单在Activity中的回调方法:

onCreateOptionsMenu(Menu menu)  //初始化选项菜单,初次显示菜单时调用 public boolean onOptionsItemSeleted(MenuItem item) //选项菜单中的某个选项被选中时,调用该方法 public void onOptionMenuClosed(Menu menu) //当关闭菜单时调用该方法

☆☆☆Android Studio实现使用菜单的使用

1.打开Android Studio,新建工程后,在activity_main.xml中,编写代码。

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/activity_main"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context="com.example.androidlesson.MainActivity"     android:background="@android:color/holo_blue_dark">     <TextView         android:text="TextView"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_alignParentTop="true"         android:layout_alignParentStart="true"         android:id="@+id/textView"         android:background="@android:color/holo_green_dark"         android:textSize="36sp" />     <ImageView         android:layout_width="match_parent"         android:layout_height="wrap_content"         app:srcCompat="@mipmap/ic_launcher"         android:id="@+id/imageView"         android:background="@android:color/holo_purple"         android:layout_below="@+id/textView"         android:layout_alignParentStart="true"         android:layout_marginTop="14dp" /> </RelativeLayout>

2.在MainActivity.java中,编写相关代码。

package com.example.menu; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity {     TextView tv;     ImageView iv;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         tv= (TextView) findViewById(R.id.textView);         iv= (ImageView) findViewById(R.id.imageView);         registerForContextMenu(tv);         registerForContextMenu(iv);     }     @Override     public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {         if (v.getId()==tv.getId()) {             //menu.add(0,0,0,"打开");             menu.add(0, 0, 0, "大号字体");             //menu.add(0,1,1,"保存");             menu.add(0, 1, 1, "小号字体");             //SubMenu sm1=menu.addSubMenu(0,2,2,"编辑");             SubMenu sm1 = menu.addSubMenu(0, 2, 2, "颜色");             //sm1.add(0,3,3,"复制");             //sm1.add(0,4,4,"粘贴");             sm1.add(0, 3, 3, "黑色");             sm1.add(0, 4, 4, "红色");         }else {             menu.add(1,5,5,"图片信息");             menu.add(1,6,6,"图片说明");         }         super.onCreateContextMenu(menu, v, menuInfo);     }     @Override     public boolean onContextItemSelected(MenuItem item) {         switch (item.getItemId()){             case 0:                 tv.setTextSize(32);                 break;             case 1:                 tv.setTextSize(16);                 break;             case 3:                 tv.setTextColor(Color.BLACK);                 break;             case 4:                 tv.setTextColor(Color.RED);                 break;             case 5:                 Toast.makeText(this,"png格式图片,分辨率64",Toast.LENGTH_LONG).show();                 break;             case 6:                 Toast.makeText(this,"这是安卓机器人的图片",Toast.LENGTH_LONG).show();         }         return super.onContextItemSelected(item);     }     @Override     public boolean onCreateOptionsMenu(Menu menu) {         SubMenu sub1=menu.addSubMenu(0,0,0,"文件");         SubMenu sub2=menu.addSubMenu(0,1,1,"编辑");         sub1.add(0,2,2,"打开");         sub1.add(0,3,3,"保存");         sub1.add(0,4,4,"另存为");         sub2.add(0,5,5,"复制");         sub2.add(0,6,6,"粘贴");         menu.add(0,7,7,"退出");         return super.onCreateOptionsMenu(menu);     }     @Override     public boolean onOptionsItemSelected(MenuItem item) {         switch (item.getItemId()){             case 2:                 break;             case 3:                 break;             case 4:                 break;             case 7:                 finish();         }         return super.onOptionsItemSelected(item);     } }

运行结果:

这就是菜单的简单使用。



android学习 菜单 方法 Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章