一伸但、前言:
1.文本擁有復(fù)制功能:
在需要用到TextView的復(fù)制的功能的時候惦费,我們只需要在xml文件中加一行代碼就行:
<TextView
android:id="@+id/item_alertDetailInfo_tvSolveTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true"/>
設(shè)置textIsSelectable為true即可廷区,但是這里有個巨坑稽揭,即便設(shè)置了這個屬性,有時候還是會不能復(fù)制,于是百度良久發(fā)現(xiàn)如下答案答案
原因如下:
it works because the TextView has to layout again. You can trace the setText method to understand why. But layout a view is expansive. It’s an old bug of Android which google just don’t want to fix it.
解決辦法:修改TextView的寬度為wrap_content即可吼拥,真是個巨坑。
二线衫、剪切板的使用:
1. 復(fù)制到剪貼板
/**
* 復(fù)制到剪貼板
* @param context
* @param text
*/
public static void putTextIntoClip(Context context,String text){
ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
//創(chuàng)建ClipData對象
ClipData clipData = ClipData.newPlainText("HSFAppDemoClip", text);
//添加ClipData對象到剪切板中
clipboardManager.setPrimaryClip(clipData);
}
2. 從剪貼板獲取文字
public void getTextFromClip(Context context){
ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
//判斷剪切版時候有內(nèi)容
if(!clipboardManager.hasPrimaryClip())
return;
ClipData clipData = clipboardManager.getPrimaryClip();
//獲取 ClipDescription
ClipDescription clipDescription = clipboardManager.getPrimaryClipDescription();
//獲取 lable
String lable = clipDescription.getLabel().toString();
//獲取 text
String text = clipData.getItemAt(0).getText().toString();
}
三凿可、詳解:
- 控件里文本自由復(fù)制
//加上屬性
android:textIsSelectable="true"
- 復(fù)制詳情
1.普通字符型
ClipData mClipData =ClipData.newPlainText("Label", "Content");
//‘Label’這是任意文字標(biāo)簽
2.url型
ClipData.newRawUri("Label",Uri.parse("http://www.baidu.com"));
3.intent型
ClipData.newIntent("Label", intent);
- 獲取剪切板數(shù)據(jù)
ClipboardManager.getPrimaryClip();
參考:http://www.reibang.com/p/b78e6697e15f
鏈接:http://www.reibang.com/p/1e84d33154bd