-
android 剪切板监听_安卓监听剪切复制粘贴事件实例
2020-12-20 19:15:49本文的剪切复制粘贴事件只针对文本,URI 和 intent 不在讨论范围内。实例代码实现了2个功能:监听剪切复制粘贴事件;获取剪切复制或粘贴的文本;剪切复制有2个方法监听剪切复制事件:剪切板和 EditText 的 ...本文的剪切复制粘贴事件只针对文本,URI 和 intent 不在讨论范围内。
实例代码实现了2个功能:
监听剪切复制粘贴事件;
获取剪切复制或粘贴的文本;
剪切复制
有2个方法监听剪切复制事件:剪切板和 EditText 的 onTextContextMenuItem() 方法。
二者的主要区别是:
剪切板是系统层面的全局性质的监听,而onTextContextMenuItem 只对某个 EditText 控件有效。
剪切板只能监听到剪切复制事件,而无法监听到粘贴事件,而 onTextContextMenuItem 能既能监听到剪切复制事件,又能监听粘贴事件;
方法一:剪切板
在这里啰嗦几句关于 Clipboard 的知识点:
剪切板不仅可以存文本,还可以存 URI 和 Intent;
剪切板上只保持对 PrimaryClip 的引用,即最新一次的剪切数据;
OnPrimaryClipChangedListener 回调只对剪切和复制操作有效,即只有剪切板数据增加时才调用 OnPrimaryClipChangedListener;
剪切板上有多个 ClipData 构成,每次剪切和复制事件都会产生一个 ClipData,ClipData 包含 ClipDescprition 和 若干个保存数据的 ClipData.Item;
监听剪切和复制事件,如果是文本则保存对应文本:
private void registerCutAndCopyEvents() {
final ClipboardManager manager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
manager.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
if (manager.hasPrimaryClip() && manager.getPrimaryClip().getItemCount() > 0) {
CharSequence addedText = manager.getPrimaryClip().getItemAt(0).getText();
if (addedText != null) {
Log.d(TAG, "copied text: " + addedData);
}
}
}
});
}
方法二:EditText#onTextContextMenuItem
在该方法中,我们可以监听到剪切、复制和粘贴事件,但是需要继承 EditText 重写该方法:
public final class Listen2PasteEditText extends android.support.v7.widget.AppCompatEditText {
private static final String TAG = "Listen2PasteEditText";
private Context mContext;
public Listen2PasteEditText(Context context) {
super(context);
mContext = context;
}
public Listen2PasteEditText(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
}
@Override
public boolean onTextContextMenuItem(int id) {
switch (id) {
case android.R.id.cut:
if (mContext instanceof ICutCopyPasteCallback) {
((ICutCopyPasteCallback) mContext).onCut(null);
break;
case android.R.id.copy:
if (mContext instanceof ICutCopyPasteCallback) {
((ICutCopyPasteCallback) mContext).onCopy(null);
break;
case android.R.id.paste:
if (mContext instanceof IPasteCallback) {
((ICutCopyPasteCallback) mContext).onPaste(null);
}
}
return super.onTextContextMenuItem(id);
}
}
其中,ICutCopyPasteCallback 是个接口, Listen2PasteEditText 所在的 Activity 需要实现该接口。
ICutCopyPasteCallback 声明如下:
public interface ICutCopyPasteCallback {
void onCut(Object o);
void onCopy(Object o);
void onPaste(Object o);
}
注意,上述代码只是让我们监听到了剪切和复制事件,要想获取文本,还是要借助剪切板,具体见 registerCutAndCopyEvents() 方法,此处不再赘述。
粘贴
剪切板无法监听到粘贴事件,只能通过 EditText#onTextContextMenuItem() 方法实现。
至于得到粘贴文本,还是需要通过剪切板获得。
具体代码见方法二。
-
linux学习第十七篇:vim介绍,颜色显示,移动光标,复制剪切粘贴
2017-11-04 18:26:46一般模式下复制剪切粘贴 VIM介绍 vi这个命令,它是linux中必不可少的一个工具。没有它很多工作都无法完成。早期的Unix都是使用的vi作为系统默认的编辑器的。你也许会有疑问,vi与vim有什么区别?可以这样简单理解,...- VIM
- VIM颜色显示和移动光标
- VIM一般模式下移动光标
- 一般模式下复制剪切粘贴
VIM介绍
vi这个命令,它是linux中必不可少的一个工具。没有它很多工作都无法完成。早期的Unix都是使用的vi作为系统默认的编辑器的。你也许会有疑问,vi与vim有什么区别?可以这样简单理解,vim是vi的升级版。 vi 和vim最大的区别就是编辑一个文本时,vi不会显示颜色,而vim会显示颜色。显示颜色更易于用户进行编辑。其他功能没有什么区别。
1.一般模式: 当你vim filename 编辑一个文件时,一进入该文件就是一般模式了。在这个模式下,你可以做的操作有,上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。
2.编辑模式:一般模式下,是不可以修改某一个字符的,只能到编辑模式了。从一般模式进入编辑模式,只需你按一个键即可(i, I, a, A, o, O, r, R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT或REPLACE”的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。
3.命令模式:在一般模式下,输入 ”:” 或者 “/” 即可进入命令模式。在该模式下,你可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等等。VIM颜色显示和移动光标
vim编辑文件的时候会显示颜色,而且这个颜色往往是根据你这个文件的具体内容有关系。例如给一个文件指定.sh脚本,它就可以根据shell语法去显示颜色。如指定python脚本,那就会根据python语法显示颜色。vim的配置文件/etc/vimrc
当你遇到vim比较高级的用法(如自动缩进,语法高亮等)的时候,可以去搜文档资料去在配置文件/root/.vimrc(默认是空的)中配置
VIM一般模式下移动光标
按键 作用 h或者向左方向键 光标向左移动一个字符 l或者向右方向键 光标向右移动一个字符 k或者向上方向键 光标向上移动一个字符 j或者向下方向键 光标向下移动一个字符 Ctrl+f或PageDown 屏幕向后移动一页 Ctrl+ b或PageUp 屏幕向前移动一页 数字0或者Shift+6 移动到本行行首 Shift+ 4 移动到本行行尾 gg 移动到首行 G 移动到尾行 nG(n是任意数字) 移动到第n行 一般模式下复制剪切粘贴
按键 作用 x,X x表示向后删除一个字符,X表示向前删除一个字符 nx 向后删除n个字符 dd 删除剪切光标所在的那一行 ndd(n为任意数字) 删除剪切光标所在行之后的n行 yy/nyy 复制光标所在行/所在行包括以下共n行 p 从光标所在行开始,向下粘贴已经复制或者粘贴的内容 P(大写) 从光标所在行开始,向上粘贴已经复制或者粘贴的内容 nyy 从光标所在行开始,向下复制n行 u 还原上一步操作(最多回复50次) Ctrl+r 与u操作相反 v 按v后移动光标会选中指定字符,然后可以实现复制,粘贴等操作 vim一般模式下命令集合
-
vim介绍、颜色显示和移动光标、一般模式下移动光标和一般模式下复制、剪切和粘贴
2017-11-07 17:58:41vi 和vim最大的区别就是编辑一个文本时,vi不会显示颜色,而vim会显示颜色。显示颜色更易于用户进行编辑刚刚安装的CentOS系统上没有这个命令,请使用命令安装: yum install -y vim-enhancedvim有一个特殊用法: ...一、vim介绍
vi 和vim最大的区别就是编辑一个文本时,vi不会显示颜色,而vim会显示颜色。显示颜色更易于用户进行编辑刚刚安装的CentOS系统上没有这个命令,请使用命令安装: yum install -y vim-enhanced
vim有一个特殊用法:
vim +n filename
这里的n是一个数字,比如vim +100 1.txt 会在vim的时候把光标定位到1.txt的第100行vim的三种模式:一般模式、编辑模式、命令模式
一般模式: 当你vim filename 编辑一个文件时,一进入该文件就是一般模式了。在这个模式下,你可以做的操作有,上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。
编辑模式:一般模式下,是不可以修改某一个字符的,只能到编辑模式了。从一般模式进入编辑模式,只需你按一个键即可(i, I, a, A, o, O, r, R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT或REPLACE”的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。
命令模式:在一般模式下,输入 ”:” 或者 “/” 即可进入命令模式。在该模式下,你可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等等。
二、一般模式下光标移动
总结如下:
三、vim一般模式下复制剪切粘贴
总结如下:
-
vim介绍 vim颜色显示和移动光标 vim一般模式下移动光标 一般模式下复制剪切粘贴
2018-04-12 20:06:48首先先安装vimyum install -y vim-enhanced·我们对比一下vi和vim 打开的区别我们先用vi打开/etc/passwd/看一下·再用vim /etc/passwd/看下·我们可以看到vi打开/etc/passwd/是没有颜色的,而用vim打开,是有颜色的...vim介绍
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。首先先安装vim
yum install -y vim-enhanced
·
我们对比一下vi和vim 打开的区别
我们先用vi打开/etc/passwd/看一下
·
再用vim /etc/passwd/看下
·
我们可以看到vi打开/etc/passwd/是没有颜色的,而用vim打开,是有颜色的,这就是vi和vim最大的区别
·
不要去修改/etc/passwd/里面的内容,这是系统文件,看完后:q 不保存退出即可
·
vim分为3种模式,一般、编辑、默认模式这3种模式
一般模式:我们可以做的事情比如dd删除一整行的内容
编辑模式:就是我们进入配置文件后,摁对应按键,可以对文档进行修改,比如i
命令模式:最常见的就是wq、q、!q、!wq这就是常见的命令模式
·
·
·
·
·
vim颜色显示和移动光标
我们上边已经知道了,vim配置文件,会有颜色显示,但是同一配置文件在不同目录下是不会显示颜色的
例如:我们把/etc/passwd/给挪到/tmp/下,再vim他就不会显示颜色
·
vim颜色是否显示很多方面有关,比如所在的目录、后缀名等。
·
vim有自己的配置文件,在/etc/vimrc
用户自己可以配置自己的vim:
·
移动光标:h左、l或空格右、j下、k上
我们还可以使用数字加移动光标的键,意思是向这个方向移动几个字母。
·
·
·
·
·vim一般模式下移动光标
ctrl+f是一屏一屏的向下翻,ctrl+b是一屏一屏的向上翻
0或shift+6可以快速移动到行首,shift+4可以快速移动到行尾
gg移动到第一行首
shift+g移动到最后一行首
数字加shift+g可以移动到指定行行首
·
·
·
·
·
一般模式下复制剪切粘贴
x向后删除一个字符,shift+x向前删除一个字符
数字+x向后删除(剪切)多少个字符,数字+x向前删除(剪切)多少个字符
dd删除(剪切)光标所在行
数字+dd删除(剪切)包括光标所在行向下的多少行
yy复制光标所在行
数字+yy复制包括光标所在行向下的多少行
p粘贴到当前光标所在行的下一行
P粘贴到当前光标所在行的上一行
u撤销一步操作,最多可以撤销50次,
ctrl+i反着撤销一步操作,(误撤销的时候可以撤销回来)
v自定义剪切,按一下v,然后移动光标选好需要剪切的字符然后按x就可以剪切下来了,
· -
删除与剪切有何区别?
2019-09-19 11:04:53删除的东西会到回收站,剪切了再粘贴文件就到了你粘贴的地方,如果剪切之后不粘贴东西还在原处,内存中会记住这...剪切表示下一步相关的任务是复制或者粘贴。 删除就是把文件放到了回收站里面.如果还想要回来的话就... -
vim介绍 vim颜色显示和移动光标 vim一般模式下移动光标 一般模式下复制剪切粘贴...
2018-04-12 20:04:30首先先安装vimyum install -y vim-enhanced·我们对比一下vi和vim 打开的区别我们先用vi打开/etc/passwd/看一下·再用vim /etc/passwd/看下·我们可以看到vi打开/etc/passwd/是没有颜色的,而用vim打开,是有颜色的... -
十七、vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、vim一般模式下复制、剪切和粘...
2018-02-27 21:32:11十七、vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、vim一般模式下复制、剪切和粘贴一、vim介绍vim:vi的升级版,区别就是:vi在编辑文本时不会显示颜色,而vim会。它的配置文件:/etc/vimrc、一些高级... -
解决vi/vim中粘贴会在行首多很多缩进和空格的问题
2020-06-28 14:23:34可用于从一个窗口剪切或复制文本并粘贴到 Vim。它的使用会避免一些意想不到的效果。 设置此选项可用于终端上运行的 Vim,因为那里 Vim 没法区别输入和粘贴的文本。在 GUI 里,Vim 知道何者来自粘贴,即使不打开 ... -
背景图层和普通图层的区别_PS:第一章 图层内部基本操作
2020-12-11 19:45:391.剪切/复制/粘贴剪切/复制:工具箱中矩形选框工具选中,ctrl+x / ctrl+c。粘贴:ctrl+v,会粘贴到画布上,形成一个新的图层。调出定界框:ctrl+t清除图像:选中,delete。背景图层会以背景色填充,普通图层像素会消失。... -
ubuntu超好用的截图
2011-11-04 00:16:56ubuntu的截图功能简单而且好用, 就两个快捷键 : print键和alt+print键。 两个区别是前者全屏幕,后者是当前激活的窗口...对于写blog来说,复制到剪切板是最方便的,在blog编辑处粘贴就可以了。 然后看看我截的图。 -
java课程设计简单记事本开发内附完整代码流程图等.doc
2020-01-17 01:15:48学生姓名 学生成绩 指导教师 朱军 工作时间 2012/06/272012/06/29 目 录 选题简介 主要利用面向对象的程序设计语言Java来实现简单记事本能够进行输入文字操作并具有新建文件打开文件保存文件退出复制粘贴剪切,... -
邪恶指南:将emacs与邪恶结合使用的指南草案-源码
2021-02-21 09:59:45目录 Vimac用户的Emacs / Evil ... 请记住,谈论“猛拉”的emacs软件包是在谈论粘贴,而与邪恶相关的软件包将使用“猛拉”来表示与vim(复制)相同的内容。 缓冲区,窗口,框架等 缓冲区和窗口在emacs中 -
线头尾两端各插入块lisp_PPT各功能介绍-第一部分
2020-12-11 15:46:35新手在学习创作PPT之前,要先对PPT的功能进行一个初步了解。今天学习【开始】健下的各项功能。一、剪切板1、复制与粘贴复制:顾名思义...这两者的区别在于单击【复制(c)】之后必须单击【粘贴】才能把你要的东西... -
VIM
2018-08-08 22:48:53一般模式下复制剪切粘贴 进入编辑模式 命令模式 vim实践 一、vim介绍 vim是vi的升级版本 vim是带有颜色显示的(与vi最明显的一个区别) 使用命令yum install -y vim-enhanced vim一共有三种模式: 一般... -
vim介绍,vim命令模式,vim实践
2019-09-13 23:48:23vim介绍 vim颜色显示和移动光标 vim一般模式下的移动光标 一般模式下复制剪切粘贴 进入编辑模式 命令模式 vim实践 课堂扩展相关 涉及命令:vim(强大的文本编辑命令,vi的加强版); 一、vim介绍 vim是vi的升级版本 ... -
四周第二次课(4月12日)
2019-09-17 23:15:045.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制、剪切和粘贴 5.1/5.2Vim Vim是一个文件编辑工具,而且Vim是Vi的升级版本。最大的区别由于Vim有颜色显示,Vim分为三种... -
2018-10-29预习与直播课笔记
2018-10-29 15:34:00内容摘要 vim介绍 vim颜色显示和移动光标 vim一般模式下的移动光标 一般模式下复制剪切粘贴 进入编辑模式 命令模式 vim实践 课堂扩展相关 涉及命令:vim(强大的文本编辑命令,vi的加强版); 一、vim介绍 vim是vi的... -
WPF Caliburn 学习笔记(二)Command
2019-08-14 11:29:28我们知道WPF也有Command,比如自带的复制、粘贴、剪切、撤销等。这里要说的是Caliburn中的Command, 它们有什么区别和不同点呢? 1、命令源 我们首先创建一个ShowMessageCommand.cs类,和ShowTitleMessageCommand.... -
第五章 VIM
2018-08-09 01:20:41三、一般模式下复制和剪切粘贴 四、进入编辑模式 五、vim命令模式 一、VIM介绍 1.1Vim是vi的升级版 1.2Vim与vi区别:Vim是带有颜色显示的 1.3Centos7系统中,安装方法:yum install -y vim-enhanced 1.4... -
excel的使用
2012-11-25 17:06:012、单元格内容的合并根据需要,有时想把B列与C列的内容进行合并,如果行数较少,可以直接用“剪切”和“粘贴”来完成操作,但如果有几万行,就不能这样办了。解决办法是:在C行后插入一个空列(如果D列没有内容,就... -
Linux mv命令(7)
2018-04-27 13:54:00其实就相当于剪切操作,而前面说的cp命令,就是复制粘贴,这两个有什么区别想必不用多说。 基本使用 使用格式 mv 源文件 目标文件 我的根目录下有 a 目录和一个 readme.txt 文件,现在我要把readme.txt文件... -
参数比对
2011-12-23 10:26:45摄像头 iphone 3G和3GS手机的区别和不同是什么?1.价格iPhone 3G 价格 99美元 8GB iPhone 3GS 价格 199美元 16GB/299美元 32GB 2....固件3.0 iPhone 3G 最新特征 剪切 复制 粘贴 彩信... -
WPF学习(7)命令
2019-07-24 00:17:47最明显的区别是,事件是与用户动作相关联的,而命令是那些与用户界面想分离的动作,例如我们最熟悉的剪切(Cut)、复制(Copy)和粘贴(Paste)命令。这带来的好处是:命令可以实现复用,减少了代码量,从而可以在不... -
vim for windows
2010-04-10 20:27:40进入编辑模式后,你可以直接敲入想要输入的字符到文件,两者的区别是i在当前字符前面开始插入,a在当前字符后面开始插入。 *退出编辑模式: 输入“[Esc]”. 这样,将返回指令模式,准备接收你要传达给vi的指令并... -
Windows操作快捷键大全
2014-12-27 17:24:30真正的电脑高手和伪电脑高手第一个区别就是用纯键盘操作电脑,这也是一名合格极客必备的技能之一。 下面是一些常用的快捷键: Ctrl+S 保存 Ctrl+W 关闭程序 Ctrl+N 新建 Ctrl+O 打开 Ctrl+Z 撤销 Ctrl+F ... -
vi 命令
2009-06-03 10:36:05VI 命令 - 转载 ...ID=3552 vi将命令模式... 理解其中的区别是掌握vi的关键.vi启动时,开始处于命令模式,在这种模式下,我们可以在文件中到处移动,改变文本的某个特定区域, 剪切, 复制和粘贴文本,还有更多. 插... -
linux 命令行常用快捷键
2018-04-19 10:14:00linux命令行常用快捷键,区别于vim编辑器快捷键。熟练掌握下面的快捷键可提高操作linux的工作效率。当然最重要的是可以装屌。 1、移动光标快捷键Ctrl+a光标...2、剪切、粘贴、清除快捷键Ctrl+Insert复制命令行... -
TextDiff文本(代码)对比软件
2011-01-07 18:30:05另外,本程序也支持剪切、复制、粘贴等剪贴板操作。被修改的文本行将以银灰底色标记。 合并文本: 完成文件比较之后(参见上图),任何不同之处都可以从一个文件合并到另一个文件。 高亮标记的文本块可以方便地从一... -
Altium Designer Beta 19.0.10完整版安装包+安装教程+和谐文件
2018-12-21 20:17:28修复了“属性”面板“参数”列表(BC:9153)中无法使用剪切/复制/粘贴的问题。 24226 修复了在“属性”面板中按“更新” (BC:9637)时未更新原理图库组件的名称/ URL链接(除非使用“输入”或“焦点更改” )的... -
Access+2000中文版高级编程
2012-02-05 09:20:2514.1.2 使用Access选项卡和使用ActiveX TabStrip控件的区别 436 14.2 ImageList控件详述 438 14.2.1 在设计阶段添加图像 438 14.2.2 在运行阶段向ImageList控件中添加图像 441 14.3 用ListView控件仿效...
-
PlutoniumEnergy:用于Factorio的Plutonium Energy mod-源码
-
Shell学习计划——Shell 变量
-
函数补充
-
基于Flink+Hudi构建企业亿级云上实时数据湖教程(PC、移动、小
-
剑指 Offer 33. 二叉搜索树的后序遍历序列
-
Docker从入门到精通
-
cadence_allegro_查看dra文件所用pad_查看封装文件用的引脚列表
-
08-java反射
-
【网络通信与信息安全】之深入解析 TCP 的“拥塞控制”原理
-
我的十二年编程之路
-
MySQL8中文手册-buffer pool
-
项目已启动但浏览器前端按钮无反应
-
华为1+X——网络系统建设与运维(中级)
-
深度学习-源码
-
记录10天刷完PAT的过程
-
系统设计:准备系统设计面试问题-源码
-
【Python-随到随学】 FLask第一周
-
机载激光雷达沙尘探测能量优化配置的统计研究
-
2.SpringMVC核心类及注解开发
-
使用vue搭建微信H5公众号项目