android剪切板一些简单实用方法
来源:互联网 发布:手机身份证读卡器软件 编辑:程序博客网 时间:2024/05/17 18:17
1、ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
2、拷贝数据的做法:需要把你所要拷贝的内容作为String 赋给baseToString 即可。下面是copy文本数据:
ClipData cd = ClipData.newPlainText("label", baseToString);
clipboardManager.setPrimaryClip(cd);
拷贝URI数据:
Uri copyUri = Uri.parse(CONTACTS + COPY_PATH + "/" + "XiaoMa");
ClipData clipUri = ClipData.newUri(getContentResolver(),"URI",copyUri);
clipboard.setPrimaryClip(clipUri)
拷贝intent数据:
Intent appIntent = new Intent();
Bundle bundle = new Bundle();
bundle.putInt("xiaoma", 3344258);
bundle.putInt("yatou", 3344179);
appIntent.putExtra("label", bundle);
appIntent.setClass(ClipBoardDemoActivity.this, ReceiverClip.class);
ClipData clipIntent = ClipData.newIntent("Intent",appIntent);
clipboard.setPrimaryClip(clipIntent);
3、读取剪切板的数据: 这里获取的文本数据类型。 是ClipDescription.MIMETYPE_TEXT_PLAIN 类型。读取数据后,那么dataString 就是在剪切板上获取的数据。
if(clipboardManager .getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN))
{
ClipData cd = cm.getPrimaryClip();
Item item = cd.getItemAt(0);
String dataString = item.getText().toString();
}
如果数据类型是Intent :这里的类型为ClipDescription.MIMETYPE_TEXT_INTENT。
if (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_INTENT)) {
item = clipboard.getPrimaryClip().getItemAt(0);
Intent intent = item.getIntent();
startActivity(intent);
如果类型是URI: 这里的类型是:ClipDescription.MIMETYPE_TEXT_URILIST
if (clipboard.getPrimaryClipDescription().hasMimeType( ClipDescription.MIMETYPE_TEXT_URILIST)) {
ContentResolver cr = getContentResolver();
ClipData cdUri = clipboard.getPrimaryClip();
item = cdUri.getItemAt(0);
Uri uri = item.getUri();
if(uri != null){
String mimeType = cr.getType(uri);
if (mimeType != null) {
if (mimeType.equals(MIME_TYPE_..)) {
.....
4、在获取剪切板中数据的时候,我们通常要判断剪切板中是否有数据:
clipboardManager .hasPrimaryClip() 如果为true 则有数据。
5、如需要利用自定义对象来传值。则在利用剪切板时,须对对象进行转换。这里我们需要用到base64这个工具类。
//自定义一个对象
MyData md = new MyData("kimifdw",26);
//定义字符串
String baseToString ="";
//1.将对象转换成字符串
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try{
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(md);
baseToString = Base64.encodeToString(byteArrayOutputStream.toByteArray(), Base64.DEFAULT);
objectOutputStream.close();
}
catch(Exception e){
e.printStackTrace();
}
.读取剪切板的字符串,并将其转换为对象
//将base64转换成toString
byte[] base64ToString = Base64.decode(item.getText().toString(), Base64.DEFAULT);
//从流中读取数据
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(base64ToString);
try{
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
MyData md = (MyData)objectInputStream.readObject();
objectInputStream.close();
textView.setText(md.toString());
}
catch(Exception e){
e.printStackTrace();
}
- android剪切板一些简单实用方法
- Android开发一些实用方法
- android开发一些实用类和方法
- 简单实用控制血压的一些小方法
- 总结的一些简单实用的小方法
- Android 剪切板 ClipboardManager 的简单解析
- 数据库一些实用方法
- linux一些实用方法
- Android开发的一些实用类和方法
- MemCache简单实用方法
- simpleAdapter 简单实用方法
- EditText方法简单实用
- 简单实用的一些快捷键
- Android剪切板
- android剪切板
- android剪切板
- android剪切板
- Android剪切板
- 【微软面试题】在二叉搜索树中找最小的大于某个key值的节点
- Hibernate中session.get和session.load的区别
- 第三章 栈和队列 1,选择题
- 淘宝技术发展
- SecureCRT 用来当串口工具的设置
- android剪切板一些简单实用方法
- 第三章 栈和队列 2,判断题
- 使用Shell脚本对Linux系统和进程资源进行监控
- jsp/Servlet
- zoj 2770 Burn the Linked Camp 差分约束
- Java Service Wrapper使用中的问题
- 一款搜索音乐的API
- 编程珠玑(2)第十三章学习笔记
- objective-c 中三种产生随机数的方法