一起学android之上下文菜单创建(5)
2014-07-21 14:52
204 查看
平时我们看到应用中长安一个文字或者按钮,会弹出菜单,从而选择一些菜单项,那到底是怎样实现的呢?
今天我们就介绍这种菜单(上下文菜单)
创建上下文菜单只需要三步:
1、registerForContextMenu(你要注册的控件):为控件注册ContextMenu。
2、重写public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) :在这里我们主要是去定义菜单。
3、重写public boolean onContextItemSelected(MenuItem item):我们点击一些菜单项时,做出的一些相应。
以下是一个例子:
主Activity代码:
activity_layout.xml:
res/menu/menu.xml:
效果图:
今天我们就介绍这种菜单(上下文菜单)
创建上下文菜单只需要三步:
1、registerForContextMenu(你要注册的控件):为控件注册ContextMenu。
2、重写public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) :在这里我们主要是去定义菜单。
3、重写public boolean onContextItemSelected(MenuItem item):我们点击一些菜单项时,做出的一些相应。
以下是一个例子:
主Activity代码:
public class MainActivity extends Activity { private TextView context_menu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context_menu=(TextView)findViewById(R.id.context_menu); /* * 控件注册 */ registerForContextMenu(context_menu); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); /* * 添加菜单项xml文件 */ MenuInflater inflater=new MenuInflater(this); inflater.inflate(R.menu.menu, menu); } /* * ContextMenu事件处理 */ @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.menu1: Toastmake(1); break; case R.id.menu2: Toastmake(2); break; case R.id.menu3: Toastmake(3); break; case R.id.menu4: Toastmake(4); break; case R.id.menu5: Toastmake(5); break; default: break; } return super.onContextItemSelected(item); } /* * 测试事件 */ private void Toastmake(int itemid) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "你点击了菜单项"+itemid, Toast.LENGTH_SHORT).show(); } }
activity_layout.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" 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=".MainActivity" > <TextView android:id="@+id/context_menu" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请长按这些文字" android:textSize="40sp" /> </RelativeLayout>
res/menu/menu.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="菜单1"/> <item android:id="@+id/menu2" android:title="菜单2"/> <item android:id="@+id/menu3" android:title="菜单3"/> <item android:id="@+id/menu4" android:title="菜单4"/> <item android:id="@+id/menu5" android:title="菜单5"/> </menu>
效果图:
相关文章推荐
- Android ListView长按创建上下文菜单
- 一起学android之对话框Dialog的创建(7)
- android-上下文菜单的创建 - 随心
- android中上下文菜单的创建-----比如长按某个按钮删除数据
- 一起学android之创建简单的ProgressDialog(30)
- Android Dialog 创建上下文菜单
- Android编程实现为ListView创建上下文菜单(ContextMenu)的方法
- 一起学android之选项菜单创建(4)
- 一起学android之子菜单的创建(6)
- Android开发之创建ContextMenu上下文菜单
- 【起点】跟我一起创建自己的第一个Android应用——HelloAndroid
- Android创建浮动的上下文菜单,实现微信通讯录列表长按弹出菜单项功能
- android创建上下文菜单(即长按菜单)
- 一起学android之DigitalClock与TextClock的创建(8)
- android-上下文菜单的创建 - 随心
- android-上下文菜单的创建 - 随心
- Android: 如何创建AVD以及选择合适target类型
- C#Winform 窗体之创建动态上下文菜单
- 用XML数据岛创建上下文菜单
- 与Android数据库一起工作