在线网站开发/博客推广的方法与技巧
一、前言:
1.文本拥有复制功能:
在需要用到TextView的复制的功能的时候,我们只需要在xml文件中加一行代码就行:
android:id="@+id/item_alertDetailInfo_tvSolveTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true"/>
设置textIsSelectable为true即可,但是这里有个巨坑,即便设置了这个属性,有时候还是会不能复制,于是百度良久发现如下答案答案
原因如下:
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. 复制到剪贴板
/**
* 复制到剪贴板
* @param context
* @param text
*/
public static void putTextIntoClip(Context context,String text){
ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
//创建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);
//判断剪切版时候有内容
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();
}
三、详解:
控件里文本自由复制
//加上属性
android:textIsSelectable="true"
复制详情
1.普通字符型
ClipData mClipData =ClipData.newPlainText("Label", "Content");
//‘Label’这是任意文字标签
2.url型
ClipData.newRawUri("Label",Uri.parse("http://www.baidu.com"));
3.intent型
ClipData.newIntent("Label", intent);
获取剪切板数据
ClipboardManager.getPrimaryClip();