运用安卓CreateOptionsMenu和onCreateContextMenu菜单,模拟微信聊天界面长按弹出菜单选项。

  1 package com.lixu.menu2;
  2
  3 import java.util.ArrayList;
  4
  5 import android.app.Activity;
  6 import android.os.Bundle;
  7 import android.view.ContextMenu;
  8 import android.view.Menu;
  9 import android.view.MenuItem;
 10 import android.view.View;
 11 import android.view.ContextMenu.ContextMenuInfo;
 12 import android.widget.AdapterView.AdapterContextMenuInfo;
 13 import android.widget.ArrayAdapter;
 14 import android.widget.ListView;
 15 import android.widget.Toast;
 16
 17 public class MainActivity extends Activity {
 18     private ArrayList<String> data;
 19     private ArrayAdapter<String> mAdapter;
 20
 21     @Override
 22     protected void onCreate(Bundle savedInstanceState) {
 23         super.onCreate(savedInstanceState);
 24         setContentView(R.layout.activity_main);
 25
 26         data = new ArrayList<String>();
 27         for (int i = 0; i < 20; i++)
 28             data.add("大神" + i);
 29
 30         ListView lv = (ListView) findViewById(R.id.listview);
 31         mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
 32
 33         lv.setAdapter(mAdapter);
 34         lv.setOnCreateContextMenuListener(this);
 35     }
 36
 37     @Override
 38     public boolean onCreateOptionsMenu(Menu menu) {
 39         getMenuInflater().inflate(R.menu.main, menu);
 40         return true;
 41     }
 42
 43     @Override
 44     public boolean onContextItemSelected(MenuItem item) {
 45         AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
 46         int pos = info.position;
 47         switch (item.getItemId()) {
 48         case 1001:
 49             Toast.makeText(this, "亲,这条消息未读哦!", 0).show();
 50             break;
 51         case 1002:
 52
 53             String s = data.get(pos);
 54             data.remove(pos);
 55             data.add(0, s);
 56
 57             mAdapter.notifyDataSetChanged();
 58
 59             Toast.makeText(this, "聊天置顶!", 0).show();
 60             break;
 61         case 1003:
 62
 63             data.remove(pos);
 64             mAdapter.notifyDataSetChanged();
 65
 66             Toast.makeText(this, "已删除!", 0).show();
 67             break;
 68
 69         default:
 70             break;
 71
 72         }
 73         return super.onContextItemSelected(item);
 74     }
 75
 76     @Override
 77     public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
 78         super.onCreateContextMenu(menu, v, menuInfo);
 79         menu.add(0, 1001, 101, "标记为未读");
 80         menu.add(0, 1002, 102, "置顶聊天");
 81         menu.add(0, 1003, 103, "删除该聊天");
 82     }
 83
 84     @Override
 85     public boolean onOptionsItemSelected(MenuItem item) {
 86         int id = item.getItemId();
 87         switch (id) {
 88         case R.id.action_settings:
 89             Toast.makeText(this, "亲,想设置什么?", 0).show();
 90             break;
 91         case R.id.action_about:
 92             Toast.makeText(this, "亲,想看什么?", 0).show();
 93             break;
 94         case R.id.action_open:
 95             Toast.makeText(this, "亲,我帮你打开?", 0).show();
 96             break;
 97         case R.id.action_file:
 98             Toast.makeText(this, "亲,你懂的。", 0).show();
 99             break;
100
101         default:
102             break;
103         }
104         return super.onOptionsItemSelected(item);
105     }
106 }

运行效果图:

时间: 2024-12-23 13:43:21

运用安卓CreateOptionsMenu和onCreateContextMenu菜单,模拟微信聊天界面长按弹出菜单选项。的相关文章

Android ListView两种长按弹出菜单方式

* 知识点1:ListView item:两种长按弹出菜单方式* 知识点2:ListView SimpleAdapter的使用*  知识点 3:在java代码中创建一个ListView*/ -----------------------------------------------------Activity[mw_shl_code=java,true]package org.gxl.com; public class ListOnLongClickActivity extends Activ

Android——长按弹出菜单、获取当前所按的item的信息

ListView 中有多个选项,长按每个选项,都能弹出一个上下文菜单,并能获取所按选项的详细信息. 关键步骤: private static final int DELETE_ID = Menu.FIRST + 1;//使用Menu.FIRST常量而不使用其他常量的原因:程序封装的变量 用起来不占内存 程序读的快 不容易出错 private static final int EDIT_ID=Menu.FIRST + 2; private static final int VIEW_ID=Menu

UIWebView长按弹出菜单显示英文解决办法

UIWebView加载网页后,长按弹出菜单,显示如下英文菜单样式: 在Info.plist中添加CFBundleLocalizations字段,并增加zh_CN元素,即可将上述菜单显示为中文. UIWebView长按弹出菜单显示英文解决办法

微信小程序动画之弹出菜单

用微信小程序做了一个动画,效果如上图: 代码: js: Page({ data: { isPopping: false, animPlus: {}, animCollect: {}, animTranspond: {}, animInput: {}, animCloud:{}, aninWrite:{}, }, //点击弹出 plus: function () { if (this.data.isPopping) { //缩回动画 this.popp(); this.setData({ isPo

糍粑大叔的独游之旅-u3d实现弹出菜单(上)-动态列表

在u3d5.x中,使用ugui作为默认的界面系统,但控件实在太少,很多需求都不能满足,比如弹出菜单(PopupMenu) 我也懒得去网上找现成的实现,再加上现有代码已经有很多有关列表控件的功能,不想再重新动这些代码. 所以自己实现一个,目前先只实现核心.搭建控件相关类的骨干,后期再慢慢丰富和做的更花哨. 开篇之前声明,我的u3d理解非常有限,有很多也许本身自带的功能或有现成库功能我不知道,所以选择了自己探索或实现, 感觉太low欢迎给出好的意见. 定义和代码结构 PopupMenu是点击鼠标或按

iOS_21团购_顶部菜单和弹出菜单联动

最后效果图: 各控件关系图1: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >\ 各控件关系图2: 点击Dock上面的buttonDockItem, 创建经导航控制器包装的DealListController, 而且加入到主控制器的右側空间 // // Deal

css+html+js实现下拉及多级弹出菜单

本文将使用css+html+js实现横向菜单,具有下拉的多级弹出菜单. 首先我们来看看效果图: 首先应该写html部分的代码,代码比较简单,代码如下: <body> <div id="menu"> <ul> <li><a href="#" id="current">首页</a></li> <li><a href="#">

MFC右键弹出菜单

右键弹出菜单是指右键抬起的时候弹出的菜单.通常放置在Dialog的OnRButtonUp响应函数里. 下面就给出右键弹出菜单的实例: 1 添加右键事件及响应函数 可以用Class Wizard...来添加一个右键消息WM_RBUTTONUP,为其添加Handler,会自动生成OnRButtonUp响应函数 2 为弹出菜单添加资源 可以用"Resource View"中的"String Table"添加一个新的弹出菜单资源,这里假设资源ID : IDC_MENU_UP

仿微信右上角弹出菜单

使用PopupWindow实现仿微信右上角弹出菜单. 效果图如下: popupWindow代码如下: import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.stcyclub.e_community.R; import android.app.Activity; import android.content.Context; impo