剪切板 复制文本 ClipboardManager
代码
public class MainActivity extends ListActivity {private EditText tv_info;private ClipboardManager cm;//剪贴板管理器protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);String[] array = { "复制文本-废弃", "获取复制的文本-废弃", "复制内容-新API", "获取文本内容", "获取URI", "获取Intent", };tv_info = new EditText(this);// 将内容显示在TextView中tv_info.setTextColor(Color.RED);tv_info.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);tv_info.setPadding(20, 40, 20, 40);getListView().addFooterView(tv_info);setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>(Arrays.asList(array))));cm = (android.content.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);}@SuppressWarnings("deprecation")@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) {switch (position) {case 0:cm.setText(tv_info.getText().toString().trim());break;case 1:Toast.makeText(this, cm.getText().toString().trim(), Toast.LENGTH_SHORT).show();break;case 2://创建能够存入剪贴板的ClipData对象ClipData mClipData = ClipData.newPlainText("label", "包青天");//创建纯文本字符型ClipData,支持5种形式mClipData.addItem(new ClipData.Item(tv_info.getText().toString().trim()));//添加纯文本mClipData.addItem(new ClipData.Item(Uri.parse("http://www.baidu.cn/")));//添加URL型ClipDatamClipData.addItem(new ClipData.Item(new Intent(Settings.ACTION_SETTINGS)));//添加Intent型ClipDatacm.setPrimaryClip(mClipData);break;case 3://获取存入剪贴板的ClipData对象,要自己保证获取到的数据类型是正确的类型ClipData data = cm.getPrimaryClip();tv_info.setText("ClipData.Item数量为:" + data.getItemCount() + "\n" + data.getItemAt(0).getText() + "\n" + data.getItemAt(1).getText());break;case 4:Uri uri = cm.getPrimaryClip().getItemAt(2).getUri();Intent intent = new Intent(Intent.ACTION_VIEW, uri);startActivity(intent);break;case 5:startActivity(cm.getPrimaryClip().getItemAt(3).getIntent());break;}}}
简介
和Window系统一样,Android也有剪切板(ClipboardManager)。对应的类:API 11之前: android.text.ClipboardManagerAPI 11之后: android.content.ClipboardManager早期版本的Android剪切板只能复制【文本】信息(可以为复合文本)。在API 11后对ClipboardManager进行了升级,使之可以通过ClipData复制文本、Uri和Intent。在Android11版本之后,原来利用剪切板传递数据使用的setText()和getText()方法被弃用了,推荐使用ClipData对象来代替。普通字符串,URL和Intent三种数据使用情况:(1)普通字符:就是普通字符串的剪切,复制,粘贴。(2)URL:在复制的时候可以复制一个URL,这个URL可以是请求ContentProvider的URL,在粘贴的时候调用ContntProvider获取数据,并使用。(3)Intent:如,在记事本应用中长按某一个记录本条目,这时会【创建】删除这个记事本的Intent,并添加到剪贴板,当用户将这个记事本条目拖到垃圾桶松开时,应用会从剪贴板中获取Intent并执行,这个记事本条目就被删除了。
剪切板 复制文本 ClipboardManager的更多相关文章
- 重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件
[源码下载] 重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件 作者:webabcd 介绍重新想象 Windows 8 Store ...
- js 实现复制到剪切板 复制按钮兼容各大浏览器
zeroclipboard官网:https://github.com/zeroclipboard/ZeroClipboard 下载压缩包,得到两个“ZeroClipboard.js”和“ZeroCli ...
- vnc viewer中开启剪切板复制内容到ubuntu系统中
说明,本机是ubuntu16,安装的vnc server 是x11vnc,具体安装方法请看之前博文.ubuntu16.4中开启vncserver进行远程桌面 vncviewer on Windows ...
- Android系统剪切板
Android系统剪贴板 复制字符串到系统剪切板 /** * 复制文本到剪切板 * * @param text * @return */ @SuppressWarnings("depreca ...
- 小菜学习Winform(六)剪切板和拖放复制
前言 在做winform项目的时候有时候会用到复制粘贴,在.net中提供了Clipboard类来操作剪切板,我们来看下. clipbrd.exe clipbrd是系统剪切板程序,但是在vista及以上 ...
- 兼容安卓和ios实现一键复制内容到剪切板
实现代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <m ...
- C# 使用WinApi操作剪切板Clipboard
前言: 最近正好写一个程序,需要操作剪切板 功能很简单,只需要从剪切板内读取字符串,然后清空剪切板,然后再把字符串导入剪切板 我想当然的使用我最拿手的C#来完成这项工作,原因无他,因为.Net框架封装 ...
- 背水一战 Windows 10 (102) - 应用间通信: 剪切板
[源码下载] 背水一战 Windows 10 (102) - 应用间通信: 剪切板 作者:webabcd 介绍背水一战 Windows 10 之 应用间通信 剪切板 - 基础, 复制/粘贴 text ...
- Python访问剪切板
剪切板访问工具 ----pyperclip he purpose of Pyperclip is to provide a cross-platform Python module for copyi ...
随机推荐
- jQuery 树形结构
强大的jquery.ztree树形菜单插件支持多种树形菜单导航 http://www.17sucai.com/pins/2259.html 演示: http://www.17sucai.com/pin ...
- HTML用法小摘录
一.网页地址栏上小图标标签添加写法: <link rel="Shortcut Icon" href="~/Content/ico/glasses.ico" ...
- 1、MyBatisNet的安装使用
用到的几个DLL按理说应该到官网下载,但这个官网是谷大哥的,不知道是不是被屏蔽,总打不开,幸好从别人的程序里拷过来一份,直接放在自己的程序里就行! 程序结构如下: Providers.config,S ...
- 在SystemOut.log中发现HMGR0152W: 检测到CPU 饥饿的消息 <转载>
今天系统报警了!!!!!顿时人又不好了!!!查看系统日志, 报错如下: Did not receive adequate CPU time slice. Last known CPU usage ti ...
- memcached采用的网络模型
memcached采用的网络模型是早前提到的半同步半异步的网络模型. 简 单的说,大致流程就是:主线程负责接收新的连接,接收到新的连接之后,选择一个worker副线程,将该新连接push到副线程的连接 ...
- php pack、unpack、ord 函数使用方法
string pack ( string $format [, mixed $args [, mixed $... ]] ) Pack given arguments into a binary st ...
- POJ3126 Prime Path(BFS)
题目链接. AC代码如下: #include <iostream> #include <cstdio> #include <cstring> #include &l ...
- BZOJ 1059 [ZJOI2007]矩阵游戏
1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2707 Solved: 1322[Submit][Stat ...
- 「Poetize3」导弹防御塔
描述 Description Freda控制着N座可以发射导弹的防御塔.每座塔都有足够数量的导弹,但是每座塔每次只能发射一枚.在发射导弹时,导弹需要T1秒才能从防御塔中射出,而在发射导弹后,发射这枚导 ...
- hdu-3487-Play with Chain-(splay 区间翻转,切割,插入)
题意: 区间翻转,切割,插入 // File Name: ACM/HDU/3487.cpp // Author: Zlbing // Created Time: 2013年08月10日 星期六 21时 ...