ListView:长按弹出上下文菜单(ContextMenu)
来源:互联网 发布:苏联出兵东北知乎 编辑:程序博客网 时间:2024/05/02 04:28
有两种方法实现长按弹出上下文菜单:
方法一:
1)注册上下文菜单
/** * 上下文菜单演示Demo * * @author CodingMyWorld 2011-8-27 下午03:22:39 */publicclass SampleContextMenuActivity extends ListActivity { privatestaticfinal String TAG ="SampleContextMenuActivity"; @Override protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 显示列表 simpleShowList(); // 为所有列表项注册上下文菜单this.registerForContextMenu(getListView()); } privatevoid simpleShowList() { // list item String[] files =new String[] { "文件1", "文件2", "文件3", "文件4" }; // simple array adapter ArrayAdapter<String> adapter =new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, files); // set adapterthis.setListAdapter(adapter); Log.v(TAG, "show simple list"); }}
2)生成上下文菜单
在activity中重新onCreateContextMenu()方法
@Overridepublicvoid onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { Log.v(TAG, "populate context menu"); // set context menu title menu.setHeaderTitle("文件操作"); // add context menu item menu.add(0, 1, Menu.NONE, "发送"); menu.add(0, 2, Menu.NONE, "标记为重要"); menu.add(0, 3, Menu.NONE, "重命名"); menu.add(0, 4, Menu.NONE, "删除");}
3)响应上下文菜单项
@Overridepublicboolean onContextItemSelected(MenuItem item) { // 得到当前被选中的item信息 AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo(); Log.v(TAG, "context item seleted ID="+ menuInfo.id); switch(item.getItemId()) { case1: // do somethingbreak; case2: // do somethingbreak; case3: // do somethingbreak; case4: // do somethingbreak; default: returnsuper.onContextItemSelected(item); } returntrue;}
方法二、
1)设置上下文菜单监听
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.timing_sms_list_screen);mTimingListView = getListView();mEmptyView = (LinearLayout)findViewById(R.id.timing_empty_view);//mTimingListView.setEmptyView(mEmptyView);doQuery();mTimingListView.setOnCreateContextMenuListener(mConvListOnCreateContextMenuListener);}
2)定义上下文菜单监听器
private final OnCreateContextMenuListener mConvListOnCreateContextMenuListener = new OnCreateContextMenuListener() {@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {Toast.makeText(getApplicationContext(), "onCreateContextMenu()", 1000).show();menu.add(0, MENU_DELETE, 0, R.string.ti_delete);menu.add(0, MENU_EDIT, 1, R.string.ti_edit);menu.add(0, MENU_SEND_IMMEDIATE, 2, R.string.ti_send_immediately);}};
3)响应上下文菜单项
@Overridepublic boolean onContextItemSelected(MenuItem item) { TimingSmsDataService service = new TimingSmsDataService(getApplicationContext()); switch (item.getItemId()) { case MENU_DELETE: AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo(); Toast.makeText(getApplicationContext(), "id: "+info.id, 1500).show();// service.deleteTimingSmsById(info.id); break; }return super.onContextItemSelected(item);}
- ListView:长按弹出上下文菜单(ContextMenu)
- ListView单击和长按弹出上下文菜单(ContextMenu)
- 长按listview弹出上下文菜单实现
- 长按listview弹出上下文菜单实现
- android listview 长按弹出菜单--ContextMenu并进行删除操作
- Android之ListView长按列表项弹出菜单 给菜单项添加事件 获取上下文
- 长按listview弹出菜单
- 【长按菜单】contextMenu
- android 组件长按弹出上下文菜单
- Android ListView长按创建上下文菜单
- Android--长按菜单--ContextMenu
- EditText 长按弹出的上下文菜单(如何修改系统默认弹出的上下文菜单)
- ListView长按弹出菜单项
- ExpandableListView的长按点击弹出上下文菜单方法
- 上下文菜单(ContextMenu)
- ContextMenu上下文菜单
- 使用上下文菜单ContextMenu
- 上下文菜单ContextMenu
- Android(Java):minSdkVersion、targetSdkVersion、targetApiLevel的区别
- Linux上安装GCC编译器过程实录
- 关于C中除法向上取整的证明
- 软件架构
- OpenCV参考手册之Mat类详解
- ListView:长按弹出上下文菜单(ContextMenu)
- oracle函数
- 读取蓝牙本机
- Ceph配置——5.Ceph-MON设置
- 三星6410 uart平台设备添加流程分析
- 成立三年多的即刻搜索看起来在消失
- cocos2d-x3.0之object内存管理
- 利用Gson jar包解析json串组装成list
- OCP-1Z0-053-V12.02-533题