2013-01-07 41 views
10

我試圖在Android編程方式複製文本,提供的這些線,但在使用它們時,我得到錯誤的另一個問題是最投票回答:類需要API級別11(當前min的8):複製與剪貼板管理器,支持舊的和新的Android版本?

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?

回答

27

嘗試使用類似以下內容:

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