开发者社区> wei-spring> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Android 自定义EditText实现粘贴,复制,剪切的监听

简介: package com.dwtedx.qq.view; import android.annotation.SuppressLint; import android.content.Context; import android.
+关注继续查看
package com.dwtedx.qq.view;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;

/**
 * An EditText, which notifies when something was cut/copied/pasted inside it.
 * 
 * @author Lukas Knuth
 * @version 1.0
 */
@SuppressLint("NewApi") public class MyEditText extends EditText implements
        MenuItem.OnMenuItemClickListener {
    private static final int ID_SELECTION_MODE = android.R.id.selectTextMode;
      // Selection context mode
    private static final int ID_SELECT_ALL = android.R.id.selectAll;
    private static final int ID_CUT = android.R.id.cut;
    private static final int ID_COPY = android.R.id.copy;
    private static final int ID_PASTE = android.R.id.paste;
    
    private final Context mContext;

    /*
     * Just the constructors to create a new EditText...
     */
    public MyEditText(Context context) {
        super(context);
        this.mContext = context;
    }

    public MyEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.mContext = context;
    }

    public MyEditText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        this.mContext = context;
    }

    @Override
    protected void onCreateContextMenu(ContextMenu menu) {
    //代码效果,有弹出框选择 粘贴,复制,剪切,类似qq效果..... menu.add(
0, ID_PASTE, 0, "粘贴").setOnMenuItemClickListener(this); menu.add(0, ID_CUT, 1, "剪切").setOnMenuItemClickListener(this); menu.add(0, ID_COPY, 1, "复制").setOnMenuItemClickListener(this); menu.add(0, ID_SELECT_ALL, 1, "全选").setOnMenuItemClickListener(this); super.onCreateContextMenu(menu); } @Override public boolean onMenuItemClick(MenuItem item) { // TODO Auto-generated method stub return onTextContextMenuItem(item.getItemId()); } @Override public boolean onTextContextMenuItem(int id) { // Do your thing: boolean consumed = super.onTextContextMenuItem(id); // React: switch (id) { case android.R.id.cut: onTextCut(); break; case android.R.id.paste: onTextPaste(); break; case android.R.id.copy: onTextCopy(); } return consumed; } /** * Text was cut from this EditText. */ public void onTextCut() { Toast.makeText(mContext, "Cut!", Toast.LENGTH_SHORT).show(); } /** * Text was copied from this EditText. */ public void onTextCopy() { Toast.makeText(mContext, "Copy!", Toast.LENGTH_SHORT).show(); } /** * Text was pasted into the EditText. */ public void onTextPaste() { Toast.makeText(mContext, "Paste!", Toast.LENGTH_SHORT).show(); } }

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
自定义android 4.0以上的对话框风格
做个笔记,这里是Dialog的风格,如果是用AlertDialog创建的,不能直接用。在styles.xml的写法: 22sp @color/font_green 1 true @st...
629 0
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
154 0
Android大数据、断点续传、耗时下载之DownloadManager开发简介(1)
 Android大数据、断点续传、耗时下载之DownloadManager开发简介(1) Android涉及到的网络数据请求,如果是零星数据、且数据量较小(几十KB到几百KB,1MB以内),一般的,可以自己使用Android原生HTTP或者第三方开源框架如Volley(相关文章:http://blog.
933 0
Android开发重要参考资料
=======================博客============================= 秋百万 有心课堂 郭霖 源码 安装ffmpeg 胡凯 官方培训课程 litesuitsway 爱哥 trinea robinRobin Hu...
850 0
+关注
wei-spring
Android 开发,Java 开发,Python开发
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android应用启动速度和内存优化实践
立即下载
Android组件化实现
立即下载
Android内存泄漏自动化链路分析组件Probe
立即下载