android中menu菜单扩增_Android_详解Android中的Menu菜单键,Android中的设置按钮:长按或点 - phpStudy...

郭乐意
2023-12-01

详解Android中的Menu菜单键

Android中的设置按钮:长按或点击菜单键

1.长按选项:

布局文件:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

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=".MenuActivity" >

android:id="@+id/menutext"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="第一种方法创建菜单"

android:textSize="sp" />

android:id="@+id/menutext"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="第二种方法创建菜单"

android:textSize="sp" />

android:id="@+id/menulist"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_marginTop="dp" >

实现过程:

private ListView list;

private TextView lv;

String[] str = { "TextView", "EditView", "Toast(消息框)" };

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_menu);

list = (ListView) findViewById(R.id.menulist);

ArrayAdapter arr = new ArrayAdapter(this,

android.R.layout.simple_list_item_, str);

list.setAdapter(arr);

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

menu.clear();

menu.clearHeader();

menu.setHeaderIcon((R.drawable.ic_launcher));

menu.setHeaderTitle("我是ListView");

menu.add(, , , "删除");

menu.add(, , , "修改");

}

});

// 第一种方法

TextView tv = (TextView) findViewById(R.id.menutext);

this.registerForContextMenu(tv);

// 第二种方法

lv = (TextView) findViewById(R.id.menutext);

lv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

menu.setHeaderTitle("长度-ContextMenu");

menu.add(, , , "复制");

SubMenu sb = menu.addSubMenu("查找");

sb.add(, , , "按id查找");

sb.add(, , , "按名称查找");

}

});

}

2.长按菜单项:

private ListView list;

private TextView lv;

String[] str = { "TextView", "EditView", "Toast(消息框)" };

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_menu);

list = (ListView) findViewById(R.id.menulist);

ArrayAdapter arr = new ArrayAdapter(this,

android.R.layout.simple_list_item_, str);

list.setAdapter(arr);

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

menu.clear();

menu.clearHeader();

menu.setHeaderIcon((R.drawable.ic_launcher));

menu.setHeaderTitle("我是ListView");

menu.add(, , , "删除");

menu.add(, , , "修改");

}

});

// 第一种方法

TextView tv = (TextView) findViewById(R.id.menutext);

this.registerForContextMenu(tv);

// 第二种方法

lv = (TextView) findViewById(R.id.menutext);

lv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

menu.setHeaderTitle("长度-ContextMenu");

menu.add(, , , "复制");

SubMenu sb = menu.addSubMenu("查找");

sb.add(, , , "按id查找");

sb.add(, , , "按名称查找");

}

});

}

下面给大家补充点Menu的基本用法

使用xml定义Menu

菜单资源文件必须放在res/menu目录中。菜单资源文件必须使用

1.标签的属性含义如下:

Id:表示菜单项的资源ID

menuCategory:同种菜单项的种类。该属性可取4个值:container、system、secondary和alternative。通过menuCategroy属性可以控制菜单项的位置。例如将属性设为system,表示该菜单项是系统菜单,应放在其他种类菜单项的后面。

orderInCategor:同种类菜单的排列顺序。该属性需要设置一个整数值。例如menuCategory属性值都为system的3个菜单项(item1、item2和item3)。将这3个菜单项的orderInCategory属性值设为3、2、1,那么item3会显示在最前面,而item1会显示在最后面。

title:菜单项标题(菜单项显示的文本)

titleCondensed:菜单项的短标题。当菜单项标题太长时会显示该属性值

icon:菜单项图标资源ID

alphabeticShortcut:菜单项的字母快捷键

numericShortcut:菜单项的数字快捷键

checkable:表示菜单项是否带复选框。该属性可设计为true或false

checked:如果菜单项带复选框(checkable属性为true),该属性表示复选框默认状态是否被选中。可设置的值为true或false

visible:菜单项默认状态是否可视

enable:菜单项默认状态是否被激活

2.标签的属性含义如下:

id:表示菜单组的ID

menuCategory:与标签的同名属性含义相同。只是作用域为菜单组

orderInCategory:与标签的同名属性含义相同。只是作用域为菜单组

checkableBehavior:设置该组所有菜单项上显示的选择组件(CheckBox或Radio Button)。如果将该属性值设为all,显示

CheckBox组件;如果设为single,显示Radio Button组件;如果设为none,显示正常的菜单项(不显示任何选择组件)。要注意的是,Android SDK官方文档在解释该属性时有一个笔误,原文是:

Whether the items are checkable. Valid values: none, all(exclusive/radiobuttons), single(non-exclusive/checkboxes).

相反了,正确应该是

all(non-exclusive/checkboxes),single(exclusive/radiobuttons).

visible:表示当前组中所有菜单项是否显示。该属性可设置的值是true或false

enable:表示当前组中所有菜单项是否被激活。该属性可设置的值是true或false相关阅读:

win10不能设置宽带dns该怎么办?win10修改DNS的两种教程

WebApi+Bootstrap+KnockoutJs打造单页面程序

Windows7系统电脑出现蓝屏该怎么处理?

SQL Server 2016正式版安装配置过程图文详解

C#实现IP摄像头的方法

用HTML/JS/PHP方式实现页面延时跳转的简单实例

PHP实现的memcache环形队列类实例

win10预览版10041怎么开启斯巴达浏览器

JQuery EasyUI 加载两次url的原因分析及解决方案

升级Win10一周年更新系统冻结问题怎么办?Win10一周年更新冻结Bug解决方法

nginx+thinkphp下解决不支持pathinfo模式

sqlserver还原数据库的时候出现提示无法打开备份设备的解决方法(设备出现错误或设备脱)

php ios推送(代码)

Linux系统的基本命令之逻辑命令的使用方法

 类似资料: