`

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使用剪切板传递数据

    "Android 使用剪切板传递数据" Android 使用剪切板传递数据是 Android 应用程序中的一种常见技术,主要用于在 Activity 之间传递数据。剪切板技术可以在 Windows 和 Linux 操作系统中使用,在 Android 系统中也存在...

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

    然而,另一种不那么常用但功能强大的方式是利用系统的剪切板(Clipboard)来传递数据。这种方法尤其适用于临时性的数据交换,比如用户复制粘贴的操作。在本篇学习笔记中,我们将探讨如何使用剪切板在Activity之间...

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

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

    详解微信小程序之一键复制到剪切板

    总结来说,微信小程序的一键复制到剪切板功能的实现,涉及到了微信小程序的API调用、事件绑定、数据传递等基础知识。对于想要提升自己小程序开发能力的开发者来说,掌握如何在小程序中实现这样的功能,是一项非常...

    用Delphi写的从剪切板获取图片Base64String的ActiveX插件

    剪切板是操作系统提供的一种临时数据存储区域,可以存放文本、图像等各种类型的数据。在Windows系统中,我们可以使用API函数如OpenClipboard、EmptyClipboard、SetClipboardData等操作剪切板内容。当用户复制或剪切...

    Unity调用Android,IOS剪切板

    本主题将深入探讨如何在Unity中调用Android和iOS的剪贴板功能,这对于游戏内分享文本信息、保存用户数据或者在不同应用间传递信息等场景非常有用。 首先,我们来看Android平台。Android系统提供了ClipboardManager...

    Android通过全局变量传递数据

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

    Android剪贴板

    综上所述,Android的剪贴板功能为开发者提供了方便的数据共享途径,通过合理的使用和管理,可以极大地提升用户体验。在`clipboard_demo`这样的示例项目中,你可能会看到如何实现这些功能的完整代码和交互流程。

    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剪贴板提供了灵活的数据交换机制,无论是简单的文本还是复杂的多媒体数据,都可以通过剪贴板轻松地在应用间传递。开发者可以通过`ClipboardManager`及其相关类来实现这一功能,从而提升用户在不同...

Global site tag (gtag.js) - Google Analytics