Android TextView 长按复制到剪切板,粘贴
2016-09-27 09:51
393 查看
和Window系统一样,Android也有剪切板(ClipboardManager)。
对应的类:
API 11之前: android.text.ClipboardManager
API 11之后: android.content.ClipboardManager
下面是代码
if (android.os.Build.VERSION.SDK_INT > 11) {
android.content.ClipboardManager c = (android.content.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
c.setPrimaryClip(ClipData.newPlainText("sinaweibo", buildShareCopyContent()));
} else {
android.text.ClipboardManager c = (android.text.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
c.setText(activitioncode.getText());
}
1. 概述: 早期版本的Android剪切板只能复制文本(可以为复合文本)信息。在API 11后对ClipboardManager进行了升级,使之可以通过(ClipData)复制文本、Uri和Intent。
(注意:在Android11版本之后,原来利用剪切板传递数据使用的setText()和getText()方法被弃用了,只能使用ClipData对象来代替。)
2. 使用流程:
(1)获取剪贴板管理器:ClipboardManager mClipboardManager = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
(2)创建能够存入剪贴板的ClipData对象(ClipData对象中包含一个或多个ClipData.Item对象):
A. 创建普通字符型ClipData:ClipData mClipData = ClipData.newPlainText("Label", "Content");
B. 创建URL型ClipData:ClipData.newRawUri("Label", Uri.parse("http://www.fishme.cn/"));
C. 创建Intent型ClipData:ClipData.newIntent("Label", intent);
注意:上面三种方法只在ClipData对象中创建了一个ClipData.Item对象,如果想向ClipData对象中添加多个Item应该通过ClipData对象的addItem()方法添加。
(3)将ClipData数据复制到剪贴板:ClipboardManager.setPrimaryClip(ClipData对象);
(4)从剪贴板中获取ClipData数据:ClipboardManager.getPrimaryClip();
(5)解析ClipData中的数据。
3. 普通字符串,URL和Intent三种数据使用情况:
(1)普通字符:就是普通字符串的剪切,复制,粘贴。
(2)URL:在复制的时候可以复制一个URL,这个URL可以是请求ContentProvider的URL,在粘贴的时候调用ContntProvider获取数据,并使用。
(3)Intent:如,在记事本应用中长按某一个记录本条目,这时会创建删除这个记事本的Intent,并添加到剪贴板,当用户将这个记事本条目拖到垃圾桶松开时,应用会从剪贴板中获取Intent并执行,这个记事本条目就被删除了。
对应的类:
API 11之前: android.text.ClipboardManager
API 11之后: android.content.ClipboardManager
下面是代码
if (android.os.Build.VERSION.SDK_INT > 11) {
android.content.ClipboardManager c = (android.content.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
c.setPrimaryClip(ClipData.newPlainText("sinaweibo", buildShareCopyContent()));
} else {
android.text.ClipboardManager c = (android.text.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
c.setText(activitioncode.getText());
}
1. 概述: 早期版本的Android剪切板只能复制文本(可以为复合文本)信息。在API 11后对ClipboardManager进行了升级,使之可以通过(ClipData)复制文本、Uri和Intent。
(注意:在Android11版本之后,原来利用剪切板传递数据使用的setText()和getText()方法被弃用了,只能使用ClipData对象来代替。)
2. 使用流程:
(1)获取剪贴板管理器:ClipboardManager mClipboardManager = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
(2)创建能够存入剪贴板的ClipData对象(ClipData对象中包含一个或多个ClipData.Item对象):
A. 创建普通字符型ClipData:ClipData mClipData = ClipData.newPlainText("Label", "Content");
B. 创建URL型ClipData:ClipData.newRawUri("Label", Uri.parse("http://www.fishme.cn/"));
C. 创建Intent型ClipData:ClipData.newIntent("Label", intent);
注意:上面三种方法只在ClipData对象中创建了一个ClipData.Item对象,如果想向ClipData对象中添加多个Item应该通过ClipData对象的addItem()方法添加。
(3)将ClipData数据复制到剪贴板:ClipboardManager.setPrimaryClip(ClipData对象);
(4)从剪贴板中获取ClipData数据:ClipboardManager.getPrimaryClip();
(5)解析ClipData中的数据。
3. 普通字符串,URL和Intent三种数据使用情况:
(1)普通字符:就是普通字符串的剪切,复制,粘贴。
(2)URL:在复制的时候可以复制一个URL,这个URL可以是请求ContentProvider的URL,在粘贴的时候调用ContntProvider获取数据,并使用。
(3)Intent:如,在记事本应用中长按某一个记录本条目,这时会创建删除这个记事本的Intent,并添加到剪贴板,当用户将这个记事本条目拖到垃圾桶松开时,应用会从剪贴板中获取Intent并执行,这个记事本条目就被删除了。
相关文章推荐
- android TextView 复制粘贴
- Android中TextView长按复制时,屏幕顶部出现粘贴等选项的布局,这个布局占了顶部的位置,如何让这个布局浮动在顶部??
- 【android】TextView文本的 “选择文字”“复制” “粘贴” 功能的实现
- android] TextView文本的 “选择文字”“复制” “
- 解决TextView长按(复制,剪切,粘贴等)显示英文问题(系统语言为中文)
- TextView长按复制-粘贴
- android开发之解决PopWindow中EditText无法复制粘贴问题
- Android中解决EditText放到popupWindow中,原有复制、粘贴、全选、选择功能失效问题
- Android textview 实现长按自由选择复制功能
- Android 实现复制到系统剪贴板 TextView 实现单行输入,禁止换行,多出来的显示省略号
- Android:可复制的TextView、EditText,复制文字到剪贴板
- Android开发TextView实现长按复制文本功能的方法
- 如何把textfield或者textview中长按出现的(全选,复制,粘贴)显示成中文
- Android EditText屏蔽默认长按粘贴复制事件
- Android 复制到剪切板和粘贴功能
- android 剪切板 (粘贴复制功能)
- Android——点击复制TextView中部分特殊样式字体
- 把textfield或者textview中长按出现的(全选,复制,粘贴) 系统相册等提示语 显示成中文
- Android textView复制,popupwindow显示在文字上方
- Android textview 实现长按自由选择复制功能的方法