`

Android 数据传递-通过剪切板传递数据

 
阅读更多
Ø在Activity之间数据传递还可以利用一些技巧,不管是Windows还是Linux操作系统,都会支持一种叫剪切板的技术,也就是某一个程序将一些数据复制到剪切板上,然后其他的任何程序都可以从剪切板中获取数据。
 

 

Ø案例一

 

package com.android.myintent;

import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.net.ContentHandler;

import android.R.color;
import android.R.integer;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.ClipboardManager;
import android.util.Base64;
import android.view.View;
import android.widget.Button;

public class Main extends Activity {
	/** Called when the activity is first created. */
	private Button button;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		button = (Button) this.findViewById(R.id.button);
		button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				// 从android系统中调用剪切板的服务
//				ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
//				String name = "jack";
//				clipboardManager.setText(name);
//				Intent intent = new Intent(Main.this, OtherActivity.class);
//				startActivity(intent);
				MyData myData = new MyData("jack", 23);
				//将对象转换成字符串
				ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
				String base64String = "";
				try {
					ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
					objectOutputStream.writeObject(myData);
					base64String = Base64.encodeToString(byteArrayOutputStream.toByteArray(), Base64.DEFAULT);
					objectOutputStream.close();
				} catch (Exception e) {
					// TODO: handle exception
				}
				ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
				clipboardManager.setText(base64String);
				Intent intent =new Intent(Main.this,OtherActivity.class);
				startActivity(intent);
			}
		});
	}
}

 

   

package com.android.myintent;

import java.io.ByteArrayInputStream;
import java.io.ObjectInputStream;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.ClipboardManager;
import android.util.Base64;
import android.widget.TextView;

public class OtherActivity extends Activity {

	private TextView textView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.other);
		textView = (TextView) this.findViewById(R.id.msg);
		ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
		String msgString = clipboardManager.getText().toString();
		byte[] base64_byte = Base64.decode(msgString, Base64.DEFAULT);
		ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
				base64_byte);
		try {
			ObjectInputStream objectInputStream = new ObjectInputStream(
					byteArrayInputStream);
			MyData myData = (MyData) objectInputStream.readObject();
			textView.setText(myData.toString());
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
}

   

package com.android.myintent;

import java.io.Serializable;

public class MyData implements Serializable {

	private String name;
	private int age;

	public MyData(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "MyData [name=" + name + ", age=" + age + "]";
	}

}

 

分享到:
评论

相关推荐

    Android通过剪切板传递数据

    在Activity之间数据传递还可以利用一些技巧,不管是Windows还是Linux操作系统,都会支持一种叫剪切板的技术,也就是某一个程序将一些数据复制到剪切板上,然后其他的任何程序都可以从剪切板中获取数据。

    Android学习笔记--使用剪切板在Activity中传值示例代码

    相对于getText和setText而言,利用ClipData对象来传递数据,更符合面向对象的思想,而且所能传递的数据类型也多样化了

    Android开发中Intent的四种数据传递方式

    4种最常用的Intent传递方式,这4种方式如下: 1、通过Intent传递数据 2、通过静态变量传递数据 3、通过剪切板传递数据 4、通过全局变量传递数据

    android利用剪切板传递数据

    本文主要介绍android应用android系统中剪切板进行数据的传递,首先讲解的是传递简单数据,然后讲解传递对象类型的数据。 所有实例均在android api 15下测试通过,所以先新建一个android应用程序。 – 传递简单类型...

    Android使用剪切板传递数据

    主要为大家详细介绍了Android使用剪切板传递数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Android通过全局变量传递数据

    在Activity之间数据传递中还有一种比较实用的方式 就是全局对象 实用J2EE的读者来说都知道Java Web的四个作用域 这四个作用域从小到大分别是Page Request Session和Application 其中Application域在应用程序的任何...

    Android学习笔记–使用剪切板在Activity中传值示例代码

    在Activity之间传递数据还可以利用一些技巧,不管windows还是Linux操作系统,都会支持一种叫剪切板的技术,也就是某一个程序将一些数据复制到剪切板上,然后其他的任何程序都可以从剪切板中获取数据,在Android系统...

    Android4.0入门之参数传递4种方式

    Android4.0入门之参数传递4种方式: 1.通过Intent方式传参 2.通过系统剪切板传参、需要对象转化成Base64的字符串进行传递 3.通过Application全局对象传值 4.通过Activity中的静态变量传参

    1.Android入门介绍.zip

    Android入门介绍视频,1.1 android系统介绍,1.2 android系统框架的介绍,1.3 如何搭建android开发环境,1.4 android生命周期的介绍,1.5 android使用全局变量传递数据,1.6 android使用剪切板传递数据,1.7 意图传递数据...

    老罗android视频开发源码和ppt经典

    1.6 android使用剪切板传递数据 1.7 意图传递数据的第一种方式 1.8 android使用静态变量传递数据 1.9 意图返回结果 二、Android常用布局介绍 2.1 android常用布局属性的介绍 2.2 android线性布局的介绍 2.3 android...

    Android剪贴板用法详解

    本文实例详述了Android剪贴板的用法,分享给大家供大家参考。具体方法分析如下: 这里首先需要注意的一点,就是在使用Android剪贴板的时候大家只记住一点就行了,不管是安卓设备还是PC机,复制粘贴在同一时间里只能...

    《深入理解Android》卷Ⅱ

    3.7.2 从剪切板粘贴数据 3.7.3 CBS中的权限管理 3.8 本章小结 第4章 深入理解PackageManagerService 4.1 概述 4.2 初识PackageManagerService 4.3 PKMS的main函数分析 4.3.1 构造函数分析之前期准备工作 ...

    NetSupport School 课堂管理软件(简体中文版)

    11 版引入新的视频编辑器,允许剪切和编辑重放文件,然后再导出为 AVI 或 WMV 文件。教师可以使用预设的选项,更高级的用户可以访问新的视频编辑应用程序,在该程序中可以控制视频分辨率、音频质量、视频的起点和...

Global site tag (gtag.js) - Google Analytics