上下文菜单与上下文操作模式
来源:互联网 发布:淘宝分享微信不能粘贴 编辑:程序博客网 时间:2024/06/05 14:49
android 菜单分类:
菜单被分为如下三种,选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)
honeycomb 之前版本设备上主要使用 浮动 上下文菜单 ,之后的使用上下文操作栏模式(action mode) 来进行操作
类似:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <item android:id="@+id/action_settings" android:icon="@android:drawable/ic_delete" android:orderInCategory="100" android:showAsAction="ifRoom|withText" android:title="@string/app_name" /> <item android:id="@+id/action_settings1" android:icon="@android:drawable/ic_menu_add" android:orderInCategory="100" android:showAsAction="ifRoom|withText" android:title="@string/app_name" /> <item android:id="@+id/action_settings2" android:icon="@android:drawable/ic_btn_speak_now" android:orderInCategory="100" android:showAsAction="ifRoom|withText" android:title="@string/say" /></menu>
MainActivity 代码片段package com.wc.contextmenu;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.view.ActionMode;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.widget.Button;public class MainActivity extends FragmentActivity { private ActionMode actionMode; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);// CrimeListFragment crimeListFragment = new CrimeListFragment();// this.getSupportFragmentManager().beginTransaction().replace(R.id.fragment, crimeListFragment).commit(); Button button = (Button) findViewById(R.id.button); button.setOnLongClickListener(new View.OnLongClickListener() { // Called when the user long-clicks on someView public boolean onLongClick(View view) {// if (actionMode != null) {// return false;// } // Start the CAB using the ActionMode.Callback defined above actionMode = MainActivity.this.startActionMode(mCallback); view.setSelected(true); return true; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { //getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); switch (id) { case R.id.action_settings: break; default: return super.onOptionsItemSelected(item); } return super.onOptionsItemSelected(item); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { // MainActivity.this.getMenuInflater().inflate(R.menu.menu_main, menu); } private ActionMode.Callback mCallback = new ActionMode.Callback() { @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; } @Override public void onDestroyActionMode(ActionMode mode) { // TODO Auto-generated method stub } @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.menu_main, menu); return true; } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { boolean ret = false; if (item.getItemId() == R.id.action_settings) { mode.finish(); ret = true; } return ret; } };}
- Context menu
- 1.创建
- 2.option Context 区别
option context 通过手机自带的meum 进行调用触发,而 ContextMeum 通过 指定的方式进行触发
在这里进行创建 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); }监听点击事件 @Override public boolean onContextItemSelected(MenuItem item) { int id = item.getItemId(); switch (id) { case R.id.action_settings: //获取点击的位置。得到对象 AdapterView.AdapterContextMenuInfo adapterContextMenuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); int position = adapterContextMenuInfo.position; ArrayAdapter arrayAdapter = (ArrayAdapter) getListAdapter(); String showParamter = (String) arrayAdapter.getItem(position); list1.remove(showParamter); ((ArrayAdapter) getListAdapter()).notifyDataSetChanged(); break; case R.id.action_settings1: Toast.makeText(getActivity(), "click 上下文菜单 --在这里可以进行删除操作", 400).show(); break; default: return super.onOptionsItemSelected(item); } return super.onContextItemSelected(item); }
参考:http://blog.csdn.net/xyz_lmn/article/details/12754785
android 权威指南 18 章节
0 0
- 10.10上下文菜单与上下文操作模式。
- 上下文菜单与上下文操作模式
- 上下文菜单与上下文操作模式
- Android 上下文菜单与上下文操作模式
- android的上下文菜单和上下文操作模式
- Android上下文菜单和上下文操作
- 实现上下文操作模式
- 上下文菜单
- 上下文菜单
- 上下文菜单
- 上下文菜单
- 上下文菜单
- 上下文菜单
- 上下文context, 上下文菜单解释
- 上下文切换与原子操作
- 上下文操作
- QContextMenuEvent 上下文菜单(右键菜单)的操作
- 上下文
- 轻量级压力测试Apache-ApacheBench(ab)
- Jenkins+maven+findbugs对java代码进行静态代码分析
- 数据结构面试题1.2.1-把二元查找树转变成排序的双向链表
- Hello,World!
- hdu 2012 素数判定
- 上下文菜单与上下文操作模式
- iOS开发网络篇之文件下载、大文件下载、断点下载
- Loadrunner analysis启动报错
- html5的画布学习小总结
- Division by zero in
- inline-block
- 自定义checkbox样式
- 系统性能调优-缓存
- Android中SQLite应用详解