10

我正在尝试在 android 上以编程方式复制文本,在另一个问题上投票最多的答案提供了这些行,但是在使用它们时出现错误:Class requires API level 11 (current min is 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;,它也产生了一个错误,The method setPrimaryClip(ClipData) is undefined for the type ClipboardManager加上关于 ClipboardManager 被弃用的警告。

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

4

1 回答 1

30

尝试使用以下内容:

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");
}
于 2013-01-07T03:45:32.920 回答