1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 监听剪切板内容 解决复制粘贴内容格式错乱

监听剪切板内容 解决复制粘贴内容格式错乱

时间:2023-06-08 02:07:19

相关推荐

监听剪切板内容 解决复制粘贴内容格式错乱

我们在进行编辑东西时经常会参考一些论坛或回答,针对图片和文字都有的html文本直接复制粘贴的话就会出现文字显示重叠,或者字号异常。如果我们要重新排版的话,就需要只截取文字,然后对图片下载后重新编辑。其实这些都可以实现,我们只需要了解ClipboardManager的使用即可。下面是我在一个富文本编辑页面使用的代码,仿照知乎只对剪切板中的文字进行粘贴。

1.在当前页面初始化的时候进行注册:

registerClipEvents();

private ClipboardManager.OnPrimaryClipChangedListener clipListener;private ClipboardManager clipManager;private CharSequence lastClipText;//上次复制的文字/*** 监听粘贴板数据的改变*/private void registerClipEvents() {clipManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);clipListener=new ClipboardManager.OnPrimaryClipChangedListener() {@Overridepublic void onPrimaryClipChanged() {if (clipManager.hasPrimaryClip() && clipManager.getPrimaryClip().getItemCount() > 0) {//从数据集中获取(粘贴)第一条文本数据CharSequence addedText = clipManager.getPrimaryClip().getItemAt(0).getText();ClipData clipData = ClipData.newPlainText("simple text", addedText);if(addedText!=null){if(!addedText.equals(lastClipText)){clipManager.setPrimaryClip(clipData);lastClipText=addedText;}}}}};clipManager.addPrimaryClipChangedListener(clipListener);ClipData clipData = ClipData.newPlainText("simple text", "随便写的内容");clipManager.setPrimaryClip(clipData);}

2.在页面销毁onDestroy()中进行移除

//移除监听 否则会内存泄漏if(clipManager!=null){clipManager.removePrimaryClipChangedListener(clipListener);}

3.这样就可以针对系统剪切板的复制粘贴内容进行自定义更改了!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。