Android:将文本复制到剪贴板,API <11

Jav*_*ner 8 clipboard android text copy

我将文本复制到剪贴板时遇到问题.我尝试像这样复制:

android.content.ClipboardManager clipboard = ( android.content.ClipboardManager ) getSystemService(Context.CLIPBOARD_SERVICE ); 
android.content.ClipData clip = android.content.ClipData.newPlainText( "text label", "text to clip" );
clipboard.setPrimaryClip( clip );
Run Code Online (Sandbox Code Playgroud)

但问题出在编译器抛出:

Call requires API level 11 (current min is 7): android.content.ClipboardManager#setPrimaryClip line 245 Android Lint Problem.
Run Code Online (Sandbox Code Playgroud)

如何在android API <11上将文本复制到剪贴板?如果我在复制前尝试检查android的API版本 - 我的代码甚至无法编译.也许有人知道这个问题的答案?

Vis*_*yas 27

参考:如何在我的Android应用程序中以编程方式复制文本

int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
    android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
    clipboard.setText("text to clip");
} else {
    android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
    android.content.ClipData clip = android.content.ClipData.newPlainText("text label","text to clip");
    clipboard.setPrimaryClip(clip);
}
Run Code Online (Sandbox Code Playgroud)

补充: 你可能需要清理并构建你的项目:)

  • 您可以在执行此操作的函数之前给出注释`@TargetApi(11)`,以告诉编译器该方法对api进行了正确的检查. (2认同)