Android学习笔记——创建一个简单的上下文菜单ContextMenu

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android学习笔记——创建一个简单的上下文菜单ContextMenu相关的知识,希望对你有一定的参考价值。

例子目标:

在一个显示出来的内容区域内,触摸屏幕显示一个上下文菜单,并且实现监听,当选择菜单项的时候,获得用户选择的项的内容。
 
实现原理:
1、向内容Activity中的需要显示上下文菜单的内容区域注册上下文菜单响应
2、设计上下文菜单样式
3、在Activity中实现上下文菜单的方法
 
代码:
上下文菜单的XML内容
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu1"
android:title="菜单一"
/>
<item android:id="@+id/menu2"
android:title="菜单二"
/>
</menu>
这部分内容需要在res/menu目录下面放置
一个简单的内容区域(菜单出发区域)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/menuView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="AAAAAAA"/>
</LinearLayout>
简单起见,只是有一个标签。
最重要的Activity的代码部分,首先在 onCreate方法中注册上下文菜单响应
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.context_menu);
TextView view = (TextView)findViewById(R.id.menuView);
registerForContextMenu(view);
}
首先获取了我们定义的TextView区域,并注册了上下文菜单。
实现触摸屏幕响应菜单的方法onCreateContextMenu
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.my_menu, menu);
}
当选择菜单的时候,需要有个响应,该方法是onContextItemSelected
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu1:
Toast.makeText(this,
"选择菜单一",
Toast.LENGTH_SHORT).show();
return true;
case R.id.menu2:
Toast.makeText(this,
"选择菜单二",
Toast.LENGTH_SHORT).show();
return true;
default:
return super.onContextItemSelected(item);
}
}
当选择菜单的时候,回提示用户选择了哪个菜单。

以上是关于Android学习笔记——创建一个简单的上下文菜单ContextMenu的主要内容,如果未能解决你的问题,请参考以下文章

Android menu 简单创建

简单的 Android 菜单

安卓讲课笔记5.11 菜单

安卓讲课笔记5.11 菜单

Android学习笔记(day01)

ABB 800XA学习笔记52:项目框架结构3