1. package com.dwtedx.qq.view;
  2.  
  3. import android.annotation.SuppressLint;
  4. import android.content.Context;
  5. import android.content.res.TypedArray;
  6. import android.util.AttributeSet;
  7. import android.view.ContextMenu;
  8. import android.view.MenuItem;
  9. import android.widget.EditText;
  10. import android.widget.Toast;
  11.  
  12. /**
  13. * An EditText, which notifies when something was cut/copied/pasted inside it.
  14. *
  15. * @author Lukas Knuth
  16. * @version 1.0
  17. */
  18. @SuppressLint("NewApi") public class MyEditText extends EditText implements
  19. MenuItem.OnMenuItemClickListener {
  20. private static final int ID_SELECTION_MODE = android.R.id.selectTextMode;
  21. // Selection context mode
  22. private static final int ID_SELECT_ALL = android.R.id.selectAll;
  23. private static final int ID_CUT = android.R.id.cut;
  24. private static final int ID_COPY = android.R.id.copy;
  25. private static final int ID_PASTE = android.R.id.paste;
  26.  
  27. private final Context mContext;
  28.  
  29. /*
  30. * Just the constructors to create a new EditText...
  31. */
  32. public MyEditText(Context context) {
  33. super(context);
  34. this.mContext = context;
  35. }
  36.  
  37. public MyEditText(Context context, AttributeSet attrs) {
  38. super(context, attrs);
  39. this.mContext = context;
  40. }
  41.  
  42. public MyEditText(Context context, AttributeSet attrs, int defStyle) {
  43. super(context, attrs, defStyle);
  44. this.mContext = context;
  45. }
  46.  
  47. @Override
  48. protected void onCreateContextMenu(ContextMenu menu) {
        //代码效果,有弹出框选择 粘贴,复制,剪切,类似qq效果.....
  49. menu.add(0, ID_PASTE, 0, "粘贴").setOnMenuItemClickListener(this);
  50. menu.add(0, ID_CUT, 1, "剪切").setOnMenuItemClickListener(this);
  51. menu.add(0, ID_COPY, 1, "复制").setOnMenuItemClickListener(this);
  52. menu.add(0, ID_SELECT_ALL, 1, "全选").setOnMenuItemClickListener(this);
  53. super.onCreateContextMenu(menu);
  54. }
  55.  
  56. @Override
  57. public boolean onMenuItemClick(MenuItem item) {
  58. // TODO Auto-generated method stub
  59. return onTextContextMenuItem(item.getItemId());
  60. }
  61.  
  62. @Override
  63. public boolean onTextContextMenuItem(int id) {
  64. // Do your thing:
  65. boolean consumed = super.onTextContextMenuItem(id);
  66. // React:
  67. switch (id) {
  68. case android.R.id.cut:
  69. onTextCut();
  70. break;
  71. case android.R.id.paste:
  72. onTextPaste();
  73. break;
  74. case android.R.id.copy:
  75. onTextCopy();
  76. }
  77. return consumed;
  78. }
  79.  
  80. /**
  81. * Text was cut from this EditText.
  82. */
  83. public void onTextCut() {
  84. Toast.makeText(mContext, "Cut!", Toast.LENGTH_SHORT).show();
  85. }
  86.  
  87. /**
  88. * Text was copied from this EditText.
  89. */
  90. public void onTextCopy() {
  91. Toast.makeText(mContext, "Copy!", Toast.LENGTH_SHORT).show();
  92. }
  93.  
  94. /**
  95. * Text was pasted into the EditText.
  96. */
  97. public void onTextPaste() {
  98. Toast.makeText(mContext, "Paste!", Toast.LENGTH_SHORT).show();
  99. }
  100. }

Android 自定义EditText实现粘贴,复制,剪切的监听的更多相关文章

  1. js屏蔽浏览器右键菜单,粘贴,复制,剪切,选中(转)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Linux下vi编辑器粘贴复制剪切功能

    RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...

  3. Android软键盘的隐藏显示、事件监听的代码

    把开发过程中重要的一些内容片段做个珍藏,如下资料是关于Android软键盘的隐藏显示.事件监听的内容,应该是对小伙伴们有所用途. public class ResizeLayout extends L ...

  4. android CheckBox控件的定义及事件监听

    http://www.beijibear.com/index.php?aid=336 android CheckBox控件的定义及事件监听,本例实现CheckBox控件的定义及点击事件的监听并显示结果 ...

  5. Android开发之手势滑动(滑动手势监听)详解

    Android开发之手势滑动(滑动手势监听)详解 在Android应用中,经常需要手势滑动操作,比如上下滑动,或左右方向滑动,处理手势滑动通常有两种方法:一种是单独实现setOnTouchListen ...

  6. Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听

    原文:Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听 简单记录下android 盒子开发遥控器的监听 ,希望能帮到新入门的朋友们 不多说,直接贴代码 public cla ...

  7. Android 自定义EditText实现类iOS风格搜索框

    最近在项目中有使用到搜索框的地方,由于其样式要求与iOS的UISearchBar的风格一致.默认情况下,搜索图标和文字是居中的,在获取焦点的时候,图标和文字左移.但是在Android是并没有这样的控件 ...

  8. Android自定义EditText去除边框并添加下划线

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  9. Android EditText软键盘显示隐藏以及“监听”

    一.写此文章的起因 本人在做类似于微信.易信等这样的聊天软件时,遇到了一个问题.聊天界面最下面一般类似于如图1这样(这里只是显示了最下面部分,可以参考微信等),有输入文字的EditText和表情按钮等 ...

随机推荐

  1. IOS总结 静变量static、全局变量extern、局部变量、实例变量

    1.静态变量 static 什么是静态变量:从面向对象的角度触发,当需要一个数据对象为整类而非某个对象服务,同时有力求不破坏类的封装性,既要求此成员隐藏在类的内部,有要求对外不可见的时候,就可以使用s ...

  2. java static关键字

    方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问. static可以用来修饰类的 ...

  3. 浅谈设计模式在GIS中的应用

    设计模式在GIS中的应用 一.设计模式概述 随着面向对象技术的广泛应用,软件复用在越来越多的开发工程中被采用.在研究软件复用的过程中,设计模式的概念被提了出来.所谓设计模式就是一些设计面向对象的软件的 ...

  4. go import

    import "fmt"最常用的一种形式 import "./test"导入同一目录下test包中的内容 import f "fmt"导入f ...

  5. python-整理-面向对象

    python的类和perl的类有相似之处,类的方法的第一个参数是表示类的对象自己,相当于c#的this python中定义类 class person: ''示例类,人'' count=0; def ...

  6. H5 progress标记

    进度条标记 示例:<progress class="processbar" id="processbar" max="100" val ...

  7. Win7 64位 php+Apache+mysql 配置

    注明:此文转载至 http://www.cnblogs.com/isyouth/p/3778045.html 一 :准备阶段 1:php php下载链接:http://windows.php.net/ ...

  8. 为什么我们需要性能测试,需要loadrunner

    什么是功能: 功能按我理解就是软件实现需求,提供服务,那么功能测试就是实现的需求是否与客户给定需求一致,也就是符合预期结果 什么是性能: 功能是实现需求,提供服务,那么性能就可以理解为服务的好坏.比如 ...

  9. 解决同一PC同一浏览器session共享问题

    首先session是同一PC同一浏览器共享的.比如如下代码: public void doPost(HttpServletRequest request, HttpServletResponse re ...

  10. Bayesian Formulation on Cooperative Tracking

    Suppose a joint state representing a set of \(N_{n}\) nodes moving in a field\[    \textbf{X}=    \b ...