2012-10-11 48 views
8

我有将文本复制到剪贴板的问题。我尝试复制这样的:Android:将文本复制到剪贴板以获取API <11

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); 

但问题是会抛出编译:

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

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

回答

26

参考:How to copy text programatically in my Android app

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); 
} 

补充: 您可能必须清理并生成项目:)

+0

是啊,我想这个代码,但它不工作。它甚至不会编译,因为编译器说:调用需要API级别11(当前最小值为7):android.content.ClipboardManager#setPrimaryClip line 245 Android Lint Problem。 – JavaRunner

+0

是否在清单文件中声明了像这样的'? –

+0

当然。编译器会抛出一个错误:“** current ** min is 7”(这是我的应用程序需要min API7)。所以我的清单是: JavaRunner