直接上代碼:(對應的類:android.content.ClipboardManager)
//獲取剪貼板管理器: ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); // 創建普通字符型ClipData ClipData mClipData = ClipData.newPlainText("Label", "這里是要復制的文字"); // 將ClipData內容放到系統剪貼板里。 cm.setPrimaryClip(mClipData);
上面的代碼就可以將文字放到剪貼板了,然后找個輸入框“粘貼”就行啦~
ps:API 11之前,復制到系統剪貼板是cm.setText(“復制的文字”);但這句已經失效了,在API11后對,對ClipboardManager進行了升級,改成cm.setPrimaryClip(mClipData),使之可以通過(ClipData)復制文本、Uri和Intent。正如上面示例;
***********************************************************************
如需自由復制TextView等控件的文字,只是要在該控件上加上這句就好了android:textIsSelectable="true",或者java代碼加 setTextIsSelectable(true);效果如圖:
************************************************************************
下面詳細介紹下:
(1)獲取剪貼板管理器:
ClipboardManager mClipboardManager =(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
(2)創建能夠存入剪貼板的ClipData對象(ClipData對象中包含一個或多個ClipData.Item對象):
A. 創建普通字符型ClipData:
ClipData mClipData =ClipData.newPlainText("Label", "Content"); //‘Label’這是任意文字標簽
B. 創建URL型ClipData:
ClipData.newRawUri("Label",Uri.parse("http://www.baidu.com"));
C. 創建Intent型ClipData:
注意:上面三種方法只在ClipData對象中創建了一個ClipData.Item對象,如果想向ClipData對象中添加多個Item應該通過ClipData對象的addItem()方法添加。
(3)將ClipData數據復制到剪貼板:
ClipboardManager.setPrimaryClip(ClipData對象);
(4)從剪貼板中獲取ClipData數據:
ClipboardManager.getPrimaryClip();
ps:普通字符串,URL和Intent三種數據使用情況:
(1)普通字符:就是普通字符串的剪切,復制,粘貼。
(2)URL:在復制的時候可以復制一個URL,這個URL可以是請求ContentProvider的URL,在粘貼的時候調用ContntProvider獲取數據,並使用。
(3)Intent:如,在記事本應用中長按某一個記錄本條目,這時會創建刪除這個記事本的Intent,並添加到剪貼板,當用戶將這個記事本條目拖到垃圾桶松開時,應用會從剪貼板中獲取Intent並執行,這個記事本條目就被刪除了。