【Android】菜单功能的实现:上下文菜单
2013-11-08 14:05
357 查看
1.在主面板里面添加一个列表视图,如下:
2.要实现的功能就是在List上长按,然后弹出菜单,菜单代码布局如下:
3.为ListView注册上下文菜单:
4.此时可以看到列表,但还无法弹出菜单。加载菜单代码如下:
此时可以弹出菜单。
5.定义选项的动作。
<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" tools:context=".MainActivity" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </ListView> </RelativeLayout>
2.要实现的功能就是在List上长按,然后弹出菜单,菜单代码布局如下:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/edit" android:orderInCategory="100" android:showAsAction="never" android:title="Edit"/> <item android:id="@+id/share" android:orderInCategory="101" android:showAsAction="never" android:title="Share"/> <item android:id="@+id/delete" android:orderInCategory="102" android:showAsAction="never" android:title="Delete"/> </menu>
3.为ListView注册上下文菜单:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) this.findViewById(R.id.listView1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData()); listView.setAdapter(adapter); // 给listView注册上下文菜单 registerForContextMenu(listView); } public List<String> getData() { List<String> list = new ArrayList<String>(); for (int i = 1; i <= 7; i++) { list.add("jack" + i); } return list; }
4.此时可以看到列表,但还无法弹出菜单。加载菜单代码如下:
// 上下文菜单 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub // 加载XML中的上下文菜单 super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); }
此时可以弹出菜单。
5.定义选项的动作。
// 相应上下文菜单的操作 @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.delete: Toast.makeText(this, "delete", Toast.LENGTH_SHORT).show(); break; case R.id.share: Toast.makeText(this, "share", Toast.LENGTH_SHORT).show(); break; case R.id.edit: Toast.makeText(this, "edit", Toast.LENGTH_SHORT).show(); break; default: break; } return super.onContextItemSelected(item); }
相关文章推荐
- Android学习——自定义利用Scroller实现可循环滚动的动画菜单控件(功能完善待改进)
- Android网络编程之一个Android下菜单系统模块的实现(客户端—开桌功能(上部))
- Android网络编程之一个Android下菜单系统模块的实现(服务器端—结算功能(中部))
- Android子菜单和选项菜单与上下文菜单的实现
- Android Menu扇形菜单功能实现
- Android组件实现长按弹出上下文菜单功能的方法
- Android网络编程之一个Android下菜单系统模块的实现(客户端—结算功能)
- Android网络编程之一个Android下菜单系统模块的实现(服务器端—结算功能(下部))
- [Android] 底部菜单布局+PopupWindows实现弹出菜单功能(初级篇)
- android在连拍菜单中增加连拍张数选项功能实现代码
- Android 系统功能设置菜单 LinearLayout与relativeLayout的实现
- Android DrawerLayout实现侧拉菜单功能
- Android仿美团淘宝实现多级下拉列表菜单功能
- 【Android】菜单功能的实现:使用XML
- Android-实现类似3DTouch菜单功能
- Android菜单功能的实现
- Android 使用FragmentTabHost实现底部菜单功能
- Android自定义View展开菜单功能的实现
- Android开发——使用高级的RecyclerView实现侧滑菜单删除功能(SwipeRecyclerView)
- Android网络编程之一个Android下菜单系统模块的实现(开桌功能))(Android客户端+服务器端Servlet+Mysql)