標籤:gets content nts board under water new add ble
直接上代碼:(對應的類: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並執行,這個記事本條目就被刪除了。
Android 複製常值內容到系統剪貼簿(自由複製)