码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2016-06-02 11:23:12      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

例子目标:

在一个显示出来的内容区域内,触摸屏幕显示一个上下文菜单,并且实现监听,当选择菜单项的时候,获得用户选择的项的内容。
 
实现原理:
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

标签:

原文地址:http://www.cnblogs.com/anivia/p/5551953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!