Android组件实现长按弹出上下文菜单功能的方法

本文实例讲述了Android组件实现长按弹出上下文菜单功能的方法。分享给大家供大家参考,具体如下:

简单组件长按弹出上下文菜单总结

第一步:在程序合适位置给一个控件注册上下文菜单

组件可以是按钮,文本框,还可以是列表条目,下以listView列表为例

ListView contentList=(ListView) findViewById(R.id.blackname_manager_listV);
contentList.setAdapter(mListAdapter);
registerForContextMenu(contentList);

第二步:在activity中复写onCreateContextMenu方法,并添加菜单项目

public void onCreateContextMenu(ContextMenu menu, View v,
    ContextMenuInfo menuInfo) {
  super.onCreateContextMenu(menu, v, menuInfo);
  menu.add(0, MENU_UPDATE, 0, "修改信息");
  menu.add(0, MENU_ADD, 0, "删除记录");
}

第三步:在activity中复写onContextItemSelected方法,处理菜单条目事件

public boolean onContextItemSelected(MenuItem item) {
  //获取上下文菜单适配器
    AdapterContextMenuInfo cmi=(AdapterContextMenuInfo)item.getMenuInfo();
  //获取被选择的菜单位置
    int posMenu=cmi.position;
  //将菜单项与列表视图的条目相关联
    items=(BlackNumber) mListAdapter.getItem(posMenu);
    switch(item.getItemId()){
    case MENU_UPDATE://执行该菜单条目的业务逻辑
      break;
    case MENU_ADD:
        //执行该菜单条目的业务逻辑
      break;
    }
    return super.onContextItemSelected(item);
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android基本组件用法总结》、《Android开发入门与进阶教程》、《Android布局layout技巧总结》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android仿QQ滑动弹出菜单标记已读、未读消息

    在上一篇<Android仿微信滑动弹出编辑.删除菜单效果.增加下拉刷新功能>里,已经带着大家学习如何使用SwipeMenuListView这一开源库实现滑动列表弹出菜单,接下来,将进一步学习,如何为不同的list item呈现不同的菜单,此处我们做一个实例:Android 高仿QQ滑动弹出菜单标记已读.未读消息,看下效果图: 1. 创建项目,并导入SwipeMenuListView类库 2. 创建消息实体bean: public class Msg { public int id; publi

  • Android PopupWindow实现右侧、左侧和底部弹出菜单

    本教程为大家分享了Android PopupWindow弹出菜单的具体代码,供大家参考,具体内容如下 项目代码:http://xiazai.jb51.net/201611/yuanma/PopupLeftMenu(jb51.net).rar 项目SDK是5.1,建议将代码拷到自己的工程中去 代码如下: MainActivity类: package com.example.popupleftmenu; import android.app.Activity; import android.cont

  • 简单实现Android弹出菜单效果

    本文实例为大家分享了Android弹出菜单效果的具体代码,供大家参考,具体内容如下 功能描述:用户单击按钮弹出菜单.当用户选择一个菜单项,会触发MenuItemClick事件并让弹出的菜单消失:如果用户在菜单外单击,则直接消失弹出的菜单.当菜单消失时,会引发DismissEvent事件(利用此事件可在菜单消失时做一些后续处理). 1.运行效果 2.添加菜单项 在Resources文件夹下添加一个menu子文件夹,然后在此子文件夹下添加一个名为demo07_popup_menu.xml的文件: <

  • Android上下文菜单用法实例分析

    本文实例讲述了Android上下文菜单用法.分享给大家供大家参考.具体如下: 上下文菜单不同于选项菜单,选项菜单服务于Activity,而上下文菜单则是注册到某个View对象上的. 如果一个View对象注册了上下文菜单,用户可以通过长按该View对象以呼出上下文菜单. 上下文菜单不支持快捷键,其菜单选项也不能附带图标,但是可以为上下文菜单的标题指定图标. 以下模拟上下文菜单 main.xml布局文件: <?xml version="1.0" encoding="utf-

  • Android 使用PopupWindow实现弹出更多的菜单实例详解

    最近想要做一个弹出更多的菜单,而原生的弹出菜单却不是我们想要的效果,所以必然要自定义菜单咯.本人也是借鉴网上的资料进行封装的,感觉还蛮不错的. 原生的菜单如下图: 自定义之后的效果图: 是不是看到这里之后,对比可知,原生的效果不太理想,所以还是再自己定义吧! 1.PopupWindow可以说是一个浮动在Activity之上的容器,通常用来显示自定义的视图.弹出菜单的封装PopMenuMore /** * 对弹出菜单的封装. * http://blog.csdn.net/maosidiaoxian

  • Android编程实现为ListView创建上下文菜单(ContextMenu)的方法

    本文实例讲述了Android编程实现为ListView创建上下文菜单(ContextMenu)的方法.分享给大家供大家参考,具体如下: ContextMenu称为上下文菜单,一般在控件上长按时弹出.今天我们学习ContextMenu的用法,这里与listview相结合,先在ListView显示几个Item,然后在Item上长按,弹出一个菜单(就是ContextMenu),点击菜单上的项目,提示刚才长按的Item的Position. main.xml文件 <?xml version="1.0

  • android自定义popupwindow仿微信右上角弹出菜单效果

    微信右上角的操作菜单看起来很好用,就照着仿了一下,不过是旧版微信的,手里刚好有一些旧版微信的资源图标,给大家分享一下. 不知道微信是用什么实现的,我使用popupwindow来实现,主要分为几块内容: 1.窗口布局文件:popwin_share.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com

  • Android编程实现带有图标的ListView并带有长按菜单效果示例

    本文实例讲述了Android编程实现带有图标的ListView并带有长按菜单效果.分享给大家供大家参考,具体如下: MainActivity.Java package com.zxl; import java.util.ArrayList; import java.util.List; import org.w3c.dom.ls.LSException; import android.app.Activity; import android.os.Bundle; import android.v

  • android popwindow实现左侧弹出菜单层及PopupWindow主要方法介绍

    PopupWindow可以实现浮层效果,主要方法有:可以自定义view,通过LayoutInflator方法:可以出现和退出时显示动画:可以指定显示位置等. 为了将PopupWindow的多个功能展现并力求用简单的代码实现,编写了一个点击按钮左侧弹出菜单的功能,实现出现和退出时显示动画效果并点击其他区域时弹出层自动消失,效果图如下: 源码: 1.PopwindowOnLeftActivity.java 复制代码 代码如下: package com.pop.main; import android

  • Android ListView长按弹出菜单二种实现方式示例

    复制代码 代码如下: /** * 知识点1:ListView item:两种长按弹出菜单方式* 知识点2:ListView SimpleAdapter的使用* 知识点 3:在java代码中创建一个ListView*/ public class ListOnLongClickActivity extends Activity {         private LinearLayout myListViewlayout;         private ListView mListView;   

随机推荐