Android剪切板传递对象
来源:互联网 发布:网络舆情管理工作制度 编辑:程序博客网 时间:2024/04/29 08:43
需要传递MyData对象
MyData.java
package com.example.android_intent3;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;}@Overridepublic String toString() {return "MyData [name=" + name + ", 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;}}
新建一个MyData对象,将其转换为字符串
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
}
再将得到的base64String当成字符串传递给另一个activity就可以了。
MainActivity.java
package com.example.android_intent3;import java.io.ByteArrayOutputStream;import java.io.ObjectOutputStream;import android.os.Bundle;import android.annotation.SuppressLint;import android.app.Activity;import android.content.ClipData;import android.content.ClipboardManager;import android.content.Context;import android.content.Intent;import android.util.Base64;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;@SuppressWarnings("deprecation")public class MainActivity extends Activity {private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @SuppressLint("NewApi")@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub //简单的通过剪切板传递字符串数据//ClipboardManager clipboarmanager = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);//String name = "matrix";//clipboarmanager.setPrimaryClip(ClipData.newPlainText("data", name));//Intent intent = new Intent(MainActivity.this,OtherActivity.class);//startActivity(intent); //通过剪切板传递对象数据 MyData mydata = new MyData("matrix",21); //将对象转换成字符串 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.setPrimaryClip(ClipData.newPlainText("data", base64String)); Intent intent = new Intent(MainActivity.this,OtherActivity.class); startActivity(intent); }}); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
OtherActivity.java
package com.example.android_intent3;import java.io.ByteArrayInputStream;import java.io.ObjectInputStream;import android.annotation.SuppressLint;import android.app.Activity;import android.content.ClipData;import android.content.ClipboardManager;import android.content.Context;import android.os.Bundle;import android.util.Base64;import android.widget.TextView;public class OtherActivity extends Activity {private TextView textview;@SuppressLint("NewApi")@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_other);textview = (TextView)findViewById(R.id.textview1);//通过剪切板获取单纯的数据字符串//ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);//ClipData clipData =clipboardManager.getPrimaryClip();//String name = clipData.getItemAt(0).getText().toString();//textview.setText(name);//通过剪切板获取对象ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);ClipData clipData =clipboardManager.getPrimaryClip();String name = clipData.getItemAt(0).getText().toString();byte[] base64_byte = Base64.decode(name, 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}}}其中 通过获得字符串得到name字符串,再将name转换MyData成对象
byte[] base64_byte = Base64.decode(name , 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
}
- Android剪切板传递对象
- android 调用剪切板传递文本
- Android使用剪切板传递数据
- Android 用剪切板传递数据
- android 使用剪切板传递数据
- android通过剪切板传递数据
- android利用剪切板传递数据
- Android通过剪切板传递数据
- Android入门篇四:使用剪切板在Activity之间传递对象数据
- android 使用Intent传递数据之剪切板
- android通过剪切板传递实体类数据
- Android剪切板传递数据的使用
- (转)Android剪切板传递数据的使用
- [疯狂Java]AWT剪切板:本地(系统)剪切板传递Java对象
- android利用剪切板来实现数据的传递 分类: android
- android利用剪切板来实现数据的传递
- Android学习备忘008——使用剪切板传递数据
- android开发入门-3 (使用剪切板传递数据)
- java 变量的命名,get和set方法的问题
- 自定义显示动态图的Android控件
- Linux C高级编程——目录操作
- ActiveMQ测试工具
- java clinit 死锁
- Android剪切板传递对象
- org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x7)
- Dubbo基础篇_04_使用Maven构建Dubbo服务可执行jar包
- Sqlldr性能优化总结
- 一个常见的ORA-00060死锁现象
- JDK 源码设计 时间换空间 & 空间换时间
- JPPF helloword
- 你真的会写简历么?
- jactor