Android系统剪贴板(ClipboardManager)的使用: 通过代码复制和粘贴数据

1. 概述

操作 Android 系统剪贴板的类在 android.content 包下(SDK API 11+),主要包含下面三个类:

  • ClipboardManager: 表示一个剪贴板
  • ClipData: 剪贴板中保存的所有剪贴数据集(剪贴板可同时复制/保存多条多种数据条目)
  • ClipData.Item: 剪贴数据集中的一个数据条目

剪贴板的简单使用可以自由选择(二者选一,区别再去是否用方法包裹)

2. 剪贴板的简单使用(使用方法包裹)

将字符串复制到粘贴板:
  1. 以下方法皆为工具方法,直接复制可用
//系统剪贴板-复制:   s为内容
    public static void copy(Context context, String s) {
        // 获取系统剪贴板
        ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
        // 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)
        ClipData clipData = ClipData.newPlainText(null, s);
        // 把数据集设置(复制)到剪贴板
        clipboard.setPrimaryClip(clipData);
    }
从粘贴板获取内容:
//系统剪贴板-获取:   
    public static String getCopy(Context context) {
        // 获取系统剪贴板
        ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
        // 返回数据
        ClipData clipData = clipboard.getPrimaryClip();
        if (clipData != null && clipData.getItemCount() > 0) {
            // 从数据集中获取(粘贴)第一条文本数据
            return clipData.getItemAt(0).getText().toString();
        }
        return null;
    }

2. 剪贴板的简单使用(不使用方法包裹)

复制:
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);

// 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)
ClipData clipData = ClipData.newPlainText(null, "需要复制的文本数据");

// 把数据集设置(复制)到剪贴板
clipboard.setPrimaryClip(clipData);
粘贴:
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);

// 获取剪贴板的剪贴数据集
ClipData clipData = clipboard.getPrimaryClip();

if (clipData != null && clipData.getItemCount() > 0) {
    // 从数据集中获取(粘贴)第一条文本数据
    CharSequence text = clipData.getItemAt(0).getText();
    System.out.println("text: " + text);
}

3. 剪贴板的数据改变监听

// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);

// 添加剪贴板数据改变监听器
clipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
    @Override
    public void onPrimaryClipChanged() {
        // 剪贴板中的数据被改变,此方法将被回调
        System.out.println("onPrimaryClipChanged()");
    }
});

// 移除指定的剪贴板数据改变监听器
// clipboard.removePrimaryClipChangedListener(listener);

参考:https://blog.csdn.net/xietansheng/article/details/70992032
https://blog.csdn.net/qq_39731011/article/details/81505858

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值