Android剪切板传递对象
2016-03-25 14:32
316 查看
需要传递MyData对象
MyData.java
新建一个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
OtherActivity.java
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
}
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; } @Override public 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") @Override public 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") @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.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 Studio从官方文档开始(2)
- Android开发中的小技巧
- Android 工具类积累
- Android 自定义WheelView
- [Android分享] 通过蓝牙,在两台设备之间传递音频(包括音乐,通话)
- Android开发优化建议
- Android 动画机制 之 属性动画
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- Android系统性能优化备忘
- Android程序中输入法弹出的时候如何不遮挡输入,与布局相配
- Android Studio动态模板——少写即多写
- Android5.0 之 ToolBar与DrawerLayout配合使用
- android studio的第一行代码
- Android内存优化图片二次采样
- 在Android中 获取正在运行的Service 实例
- Android HAL实例解析
- Android AutoLayout全新的适配方式 堪称适配终结者(转)
- android下数据的持久化保存
- 图解Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()
- Android历史记录的做法思路