文档章节

android 使用Intent传递数据之剪切板

蜀山下的鱼
 蜀山下的鱼
发布于 2015/04/29 00:44
字数 290
阅读 3
收藏 0

windows和linux中都支持一种剪切板技术,就是一个程序将一些数据复制到剪切板上,然后其他的程序可以从剪切板中获取数据。

 

调用服务:

ClipData clipdata = ClipData.newPlainText("name", "clipData");

ClipboarManager clipboarManager=(ClipboarManager)getSystemService(Context.CLIPBOARD_SERVICE);


 

这样就把数据放入了剪切板中了

 

取数据的时候代码为:

ClipboarManager clipboarManager=(ClipboarManager)getSystemService(Context.CLIPBOARD_SERVICE);

if(clipboarmanager.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN))
   {
    ClipData cd = clipboarmanager.getPrimaryClip();
    Item item = cd.getItemAt(0);
           textview.setText(item.getText().toString());
   }


 

 

如果需要传递复杂的数据格式,可以自己定义一个实现了Serializable的类:

public class MyData implements Serializable{

     定义数据。。。。

}

 

读取自定义对象,并将其转换为字符串,写入剪切板

//自定义一个对象
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();//关闭
      txtView.setText(md.toString());
}
catch(Exception e)
{
      e.printStackTrace();
}

本文转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/8244936

蜀山下的鱼
粉丝 9
博文 405
码字总数 0
作品 0
广州
高级程序员
私信 提问
糊里糊涂学Android(1)——Activity之间的数据传递

在Activity之间传递数据,主要的方法有四种: 利用静态字段传递; 利用Intent传递; 利用ClipboardManager传递; 利用全局变量传递。 下面就一一道来,首先呢,创建一个Android Application...

笑缘心归
2014/03/15
162
0
在Activity之间传递数据方法

1.Intent对象 2.静态变量 3.通过剪切板 4.通过全局对象Application public class ATActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCr......

带梦想一7飞
2013/04/12
44
0
android中使用Intent在activity之间传递数据

android中intent传递数据的简单使用: 1.使用intent传递数据:   首先将需要传递的数据放入到intent中   Intent intent = new Intent(MainActivity.this,OtherActivity.class);   int...

红豆与绿豆
2015/10/14
107
0
界面开发组件Activity详解

Activity是Android中最核心的应用程序组件,是用于控制显示界面的组件。一个Activity就是一个类,该类继承了android.app.Activity,并需要重写onCreate方法,同时在AndroidManifest.xml中进行...

jz116
2012/12/16
440
1
Android应用开发之(通过ClipboardManager, ClipData进行复制粘贴)

Android应用开发之(通过ClipboardManager, ClipData进行复制粘贴) Android Developer: 在开发一些系统应用的时候,我们会用到Android的剪贴板功能,比如将文本文件、或者其他格式的内容复制...

神剑戎
2013/04/24
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部