Android 複製和粘貼功能

作了一回搬運工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765html

 

 

Android 複製和粘貼功能,須要調用系統服務ClipboardManager來實現。android

ClipboardManager mClipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

複製功能,首先要構造一個ClipData對象,而且把要複製的數據和 MIME type 賦值給ClipData,而後在把ClipData傳入mClipboardManager.setPrimaryClip()方法,此時,咱們完成了一個複製。git

粘貼功能,調用mClipboardManager.hasPrimaryClip()來判斷粘貼板是否有數據,而後經過mClipboardManager.getPrimaryClipDescription().hasMimeType()判斷當前粘貼板的數據 MIME type是否是APP支持的,若是是APP支持的,獲取數據mClipboardManager.getPrimaryClip()github

下面就文本,URI,Intent的複製粘貼,分別提供一個demo。ide

文本

複製:ui

//第一個參數,是描述複製的內容,也能夠和內容同樣。
ClipData clipData = ClipData.newPlainText("copy from demo", mEtCopy.getText());
mClipboardManager.setPrimaryClip(clipData);

粘貼this

URI 複製

複製:google

Uri uri = Uri.parse(uriStr);
ClipData clipData = ClipData.newUri(getContentResolver(), "copy from demo", uri);
mClipboardManager.setPrimaryClip(clipData);

粘貼spa

Intent 複製

複製:.net

Intent intent = new Intent(this, TextActivity.class);
ClipData clipData = ClipData.newIntent("copy from demo", intent);
mClipboardManager.setPrimaryClip(clipData);

粘貼:

if (mClipboardManager.hasPrimaryClip()
        && mClipboardManager.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_INTENT)) {
    ClipData.Item item = mClipboardManager.getPrimaryClip().getItemAt(0);
    Intent intent = item.getIntent();
    if (intent == null) {
        return;
    }
    startActivity(intent);
}

複製粘貼功能的API並不難理解,若是想了解更多的功能,能夠看官方API指南。 
Demo地址

相關文章
相關標籤/搜索