使用ClipBoardManager类来传递类的过程如下
- 使用ClipBoardManager clipBoardManager = (ClipBoardManager)getSystemService(CLIPBOARD.SERVIE)来获得ClipBoardManager 对象
ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
- 利用io流封装需要传递的类。
MyData myData = new MyData("jack",21); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { ObjectOutputStream outputStream = new ObjectOutputStream(byteArrayOutputStream); outputStream.writeObject(myData); } catch (IOException e) { e.printStackTrace(); }
- 将封装得到的ByteArrayOutputStream类转换成byte数组利用Base64类进行转换,并得到的字符串加入剪贴板
String msg = Base64.encodeToString(byteArrayOutputStream.toByteArray(),Base64.DEFAULT); clipboardManager.setText(msg);
- 利用io流将加密后的字符串取出来进行解析,得到原来的myData类
ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); String msg = clipboardManager.getText().toString(); byte[] bytes = Base64.decode(msg,Base64.DEFAULT); try { ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); ObjectInputStream os = new ObjectInputStream(byteArrayInputStream); MyData myData = (MyData)os.readObject(); textView.setText("名字:"+myData.getName()+" ,年龄:"+myData.getAge()); } catch (Exception e) { e.printStackTrace();