Ø在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;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);button = (Button) this.findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic 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;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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;}@Overridepublic String toString() {return "MyData [name=" + name + ", age=" + age + "]";}}

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. Android:指定某浏览器访问指定页面
  3. Android(安卓)串口通信之间的发送数据与接收数据(详解)
  4. 使用 SQLiteDatabase 操作 SQLite 数据库
  5. Android(安卓)报错 “程序包R不存在...!”
  6. Android之ListView的简单用法
  7. Android开发之数据存储全方案
  8. Android数据储存——文件储存
  9. android类作用整理

随机推荐

  1. android 6.0 logcat机制(三)logd处理请求lo
  2. Android开发学习系列(一)——Android按钮圆
  3. Capacitor+Vue+Vant移动端打包总结
  4. Android使用控件ImageView加载图片的方法
  5. Android Studio Gradle自动打包文档
  6. Android中Service服务详解(一)
  7. Android 滑动效果进阶篇(六)—— 倒影效果
  8. Android自定义UI手势密码改进版源码下载
  9. Android应用开发揭秘(笔记) 第六章 Android
  10. Android集成第三方支付