提问者:小点点

使用支持新旧android版本的剪贴板管理器复制?


我试图在Android上以编程方式复制文本,在另一个问题上投票最多的答案提供了这些行,但当使用它们时,我得到错误:类需要API级别11(当前最小值为8):

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", "Text to copy");
clipboard.setPrimaryClip(clip);

我直接从问题中复制了这些行。在尝试使用import android. content.ClipboardManager;之后,我测试了import android.text.ClipboardManager;,但它也产生了一个错误方法setPrimaryClip(ClipData)对于ClipboardManager类型未定义,并警告ClipboardManager已被弃用。

我的应用程序,支持Android 2.2(API8我认为)起,我如何复制文本,使其适用于所有版本的Android?


共1个答案

匿名用户

尝试使用如下内容:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    final android.content.ClipboardManager clipboardManager = (android.content.ClipboardManager) context
            .getSystemService(Context.CLIPBOARD_SERVICE);
    final android.content.ClipData clipData = android.content.ClipData
            .newPlainText("text label", "text to clip");
    clipboardManager.setPrimaryClip(clipData);
} else {
    final android.text.ClipboardManager clipboardManager = (android.text.ClipboardManager) context
            .getSystemService(Context.CLIPBOARD_SERVICE);
    clipboardManager.setText("text to clip");
}