Itellboy

Maybe I can do it.

利用android剪贴板实现数据传递

  使用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();
    
    

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013739363/article/details/50866276
个人分类: 安卓&&java
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

利用android剪贴板实现数据传递

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭