使用ClipboardUtils兼容API LEVEL 11以下实现复杂粘贴
实现功能:复杂粘贴内容 问题描述:android.content.ClipboardManager在APILevel 11之后才可以使用,而我们目前还要兼容API Level 10(2.3.3)
解决办法:编写了一个工具类来完成这个工作“ClipboardUtils”。
VIEW SOURCE
public class ClipboardUtils {
private static ClipboardManager mClipboardManager;
private static android.content.ClipboardManager mNewCliboardManager; private static void instance(Context context) {
if (SDK_INT >= HONEYCOMB) {
if (mNewCliboardManager == null)
mNewCliboardManager = (android.content.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
} else {
if (mClipboardManager == null)
mClipboardManager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
}
} /**
* 为剪切板设置内容
*
* @param context
* @param text
*/
public static void setText(Context context, CharSequence text) {
if (SDK_INT >= HONEYCOMB) {
instance(context);
// Creates a new text clip to put on the clipboard
ClipData clip = ClipData.newPlainText("simple text", text); // Set the clipboard's primary clip.
mNewCliboardManager.setPrimaryClip(clip);
} else {
instance(context);
mClipboardManager.setText(text);
}
} /**
* 获取剪切板的内容
*
* @param context
* @return
*/
public static CharSequence getText(Context context) {
StringBuilder sb = new StringBuilder();
if (SDK_INT >= HONEYCOMB) {
instance(context);
if (!mNewCliboardManager.hasPrimaryClip()) {
Log.d("android.content.ClipboardManager", "Clipboard is empty");
return sb.toString();
} else {
ClipData clipData = (mNewCliboardManager).getPrimaryClip();
int count = clipData.getItemCount(); for (int i = 0; i < count; ++i) { ClipData.Item item = clipData.getItemAt(i);
CharSequence str = item.coerceToText(context);
Log.i("mengdd", "item : " + i + ": " + str);
sb.append(str);
}
} } else {
instance(context);
sb.append(mClipboardManager.getText());
}
return sb.toString();
}
}
思路:判断当前SDK版本,11以下使用android.text.ClipboardManager,否则采用android.content.ClipboardManager。
使用ClipboardUtils兼容API LEVEL 11以下实现复杂粘贴的更多相关文章
- Call requires API level 11 (current min is 8)报错
新建一个Android Application Project,其中MainActivity.java中报错如下 Call requires API level 11(current min is 8 ...
- Android Call requires API level 11 (current min is 8)的解决方案
[错误描述] 在用Eclipse开发过程中,为了兼容Android2.2和4.0以上版本,我在使用Notification类时做了2个版本的代码,代码根据系统版本不同执行相应模块,结果,等我输完代码, ...
- 【转】调用getActionBar()报Call requires API level 11 (current min is 8): android.app.Activity#getActionBar
解决办法: 第一种方法:修改AndroidManifest.xml中的minSdkVersion=11 第二种方法: 1.导入android-support-v7-appcompat项目,并将其作 ...
- Type Call requires API level 11 (current min is 8)解决办法
解决办法: 1:project-->clean.. 2:右键工程-->Android Tools-->clean lint markers 3:修改AndroidManifest.x ...
- Android API Level在11前后及16之后时Notification的不同用法
作为刚入门Android的小白,最近在按照郭大神的<第一行代码>在练习,在用到Notification时遇到了一些问题,网上资料比较零散,我这里做了一个总结分析给各位,若有错误,恳请指正~ ...
- 版本和API Level对照表
版本和API Level对照表 Code name Version API level (no code name) 1.0 API level 1 (no code name) 1.1 API le ...
- Android 系统名字、版本、API level的对应关系
从官网上找到的,具体地址是: http://source.android.com/source/build-numbers.html Code name Version API level Lolli ...
- Android AppCompat 需要 API 级别 11
为了兼容性使用 AppCompat 支持库.现在我试图override AppCompat 中的一些项来建立自己的Theme,在values文件下的style.xml里添加如下内容. <!-- ...
- 最新Android的SDK版本与API Level的对应关系
Android 7.1.1 API Level 25 Android 7.0 ...
随机推荐
- whatweb
WhatWeb是一款网站指纹识别工具,主要针对的问题是:“这个网站使用的什么技术?”WhatWeb可以告诉你网站搭建使用的程序,包括何种CMS系统.什么博客系统.Javascript库.web服务器. ...
- heartbeat安装与配置
Hearbeat和keepalived区别 Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP): He ...
- css3动画属性(transitions:property duration timing transition-delay)
transitions:property duration timing-function; transitionst他有三个参数:1) property:属性设置,例如background,colo ...
- 原生js运动框架
function getStyle(obj,name){ if(obj.currentStyle) { return obj.currentStyle[name]; } else { return g ...
- 如何卸除SDL TRADOS中的自开发插件
去年学着用SDL的例子编译了一个名为SimpleText的插件,每次打开TRADOS 2014时都要提示三次加载插件,很是烦人.但我想卸掉时,却无从下手,不知道怎么办.这个问题纠缠了我很久,今晨心性比 ...
- delphi 获取两个颜色差值
前面说了已经获取到颜色值了,现在需要比较两个颜色的差值. 两个颜色的根据RGB的差来取,有两种情况: 1.(R的平方+G的平方+B的平方)开根号,再两个颜色值相减获取差值. 2.(((R1-R2)的平 ...
- java反射保存
前言 代码是我师父的,代码是我师父的,代码是我师父的,如有需要拿走的时候请标注 copyright by 山人Wu 记录这篇是为了加深理解,前段时间只是当做工具类来用,才有时间好好看一下,加深理解 ...
- 502 Server dropped connection
在本地电脑上开启了,全局VPN代理后,出现 502 报错. 502 Server dropped connection The following error occurred while tryin ...
- MERGE 用法
1.不带输出的SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[InsertShiGongJiao] ), @com ...
- 敏捷开发 与 Scrum
敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把 ...