Android开发长按菜单上下文菜单

安卓开发中长按弹出菜单的创建方法:

1.首先给View注册上下文菜单registerForContextMenu();

2.添加上下文菜单内容onCreateContextMenu():

---可以通过代码动态添加;

---可以加载xml文件中的菜单项;

3.设置菜单点击后响应事件onContextItemSelected();

运行效果图如下:

activity_main.xml代码如下:

<RelativeLayout

android:layout_width="match_parent"

......此处省略  

>

  <ListView

     android:layout_width="fill_parent"

     android:layout_height="fill_parent"

     android:id="@+id/listview"

   />

</RelativeLayout>

MainActivity.java代码如下:

......此处省略

@Override

protected void onCreate(Bundle savedInstanceState){

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  showListView();

}

/**

*设置listview的显示内容

*/

private void showListView(){

  ListView listview = findViewById(R.id.listview);

  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,getData());

  listview.setAdapter(adapter);

  this.registerForContextMenu(listview);

}

@Override

public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo){

  super.onCreateContextMenu(menu,v,menuInfo);

  //设置Menu显示内容

  menu.setHeaderTitle("文件操作");

  menu.setHeaderIcon(R.drawable.ic_launcher);

  menu.add(1,1,1,"复制");

menu.add(1,2,1,"粘贴");

menu.add(1,3,1,"剪切");

menu.add(1,4,1,"重命名");

}

@Override

public boolean onContextItemSelected(MenuItem item){

  switch(item.getItemId()){

    case 1:

      Toast.makeText(MainActivity.this,"点击复制",Toast.LENGTH_SHORT).show();

      break;

    case 2:

      Toast.makeText(MainActivity.this,"点击粘贴",Toast.LENGTH_SHORT).show();

      break;

    case 3:

      Toast.makeText(MainActivity.this,"点击剪切",Toast.LENGTH_SHORT).show();

      break;

    case 4:

      Toast.makeText(MainActivity.this,"点击重命名",Toast.LENGTH_SHORT).show();

      break;

  }

  return super.onContextItemSelected(item);

}

/**

*构造listview显示的数据

*/

private ArrayList<String> getData(){

  ArrayList<String> list = new ArrayList<String>();

  for(int i=0;i<5;i++){

    list.add("文件"+(i+1));

  }

return list;

}

时间: 2024-10-06 03:38:48

Android开发长按菜单上下文菜单的相关文章

Android学习笔记之ContextualMenu上下文菜单用于长按事件的确定

(1)在布局文件中创建一个listview: <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进阶(二十八)上下文菜单ContextMenu使用案例

上下文菜单ContextMenu使用案例 前言 回顾之前的应用程序,发现之前创建的选项菜单无法显示了.按照正常逻辑来说,左图中在"商品信息"一栏中应该存在选项菜单,用户可进行分享等操作,但是现在此操作莫名其妙的消失了.写了个测试Demo,如中图所示,一切按照逻辑显示正常.怪就怪在项目中无法显示,起初设想是因为Android系统版本太高问题,但是在别的手机上测试之后发现问题依旧存在.难道是因为顶部Tab标题栏遮挡住了选项菜单的显示?继续测试,通过在别的没有Tab标题栏的页面测试选项菜单,

Android开发:仿美团下拉列表菜单,帮助类,复用简单

最近在项目中需要用到下拉菜单,公司比较推崇美团的下拉菜单,于是要实现该功能,想着,这个功能应该是一个经常会用到的,于是何不写一个帮助类,只要往这个类里面传入特定的参数,既可以实现下来菜单,而且还可以实现菜单选择的回调,既可以重复使用,有简单便捷 首先,查看界面效果图 界面倒是比较简单,主要列下功能: 这个是靠一个帮助类实现的,下次想在自己的项目中实现该功能,一句引用代码,传入特定的参数既可以实现该功能 菜单弹出的时候,背景变灰色,菜单收回,背景回复白色 自动给选定的选项添加背景色,如果下次选择的

Android开发之自定义局部导航菜单

如今,要实现导航功能方案有很多.比如: 1.用3.0+自带的Toolbar + Fragment导航 . 2.用Tabhost实现导航.小弟学浅,就只用过这两种方案实现导航. 但是这两种方案都有一个很明显的弊端:导航的位置太过于固定了.比如Toolbar的就只能在标题栏处(ps:源码修改大神跳过).还有Tabhost,虽然自定义Tabhost比直接继承TabActivity更加灵活,但是却没有选项切换动画(ps:也许是我没发现). ? 有时候,我们仅仅是想在一个画面的一角处,贴上一个导航,用于切

Android开发手记(10) 下拉菜单Spinner

1.自定义Spinner 首先,定义Spinner要显示的项目列表/res/values/arrays.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string-array name="citys"> 4 <item>南京</item> 5 <item>徐州</item> 6 <

Andorid——菜单:上下文菜单

一,简介 Android系统中的ContextMenu(上下文菜单)类似于PC的右键弹出菜单,当一个视图注册了上下文菜单,长按该试图对象将出现一个提供相关功能的浮动菜单. 使用: 上下文菜单可以被注册到任何视图中,最常见的是ListView,但是上下文菜单不支持图标和快捷键. 二,调用需要的方法 1,onCreateContextMenu方法:当上下文菜单被创建时 回调该函数 2,onContextItemSelected方法:当上下文菜单某项被选中时回调该函数 3,registerForCon

Android — 长按ListView 利用上下文菜单(ActionMode) 进行批量事件处理

好久没写博客拉``````` 近期最终略微闲一点了``````` 无聊拿手机清理短信.发现批量事件的处理还是挺管用的`````` 那么自己也来山寨一记看看效果吧````` 闲话少说,首先,我们来看下手机自带的短信功能里运行批量删除时的效果: 然后  是我们自己简单山寨的效果:       模拟的操作过程非常easy,但也非常有代表性. 我们假定我们所处的场景为.进入一个存放联系人列表的界面. 于是,首先我们定义了一个进度框,模拟提示正在从网络上下载数据. 接着.当网络数据成功下载到移动设备上后,

Android开发系列(二十九):使用ContextMenu创建上下文菜单

在上一篇我们介绍了创建选项菜单,这里我们介绍下创建上下文菜单. 上下文菜单就是通过长按某一段文字,然后出来相应的菜单.就比如贴吧,当你长安某一楼层,就会弹出来一个"复制"这一楼层文字的菜单,点一下"复制",这段文字就保存在你手机的临时存储的地方了,可以在别的地方黏贴. 开发上下文菜单的步骤: 1.重写Activity的onCreateContextMenu(ContextMenu menu,View source,ContextMenu.Context MenuIn

Android学习----------长按列表项弹出菜单,给菜单项添加事件,获取上下文

这里是先显示一个listview,长按listview的一个列表项,弹出一个菜单来,菜单有两个条目, "更新该条"和"删除该条",并且这两条都有监听事件,整体就像微信好友对话操作一样. 其中菜单项有一个获取上下文的操作:AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 这句也是用于列表项的. 具体代码如下: protected void onCreate(Bundle