ContextCompat
来源:互联网 发布:聊天机器人 知乎 编辑:程序博客网 时间:2024/05/16 10:04
ContextCompat
Android用ContextCompat替换getResources()获取资源; android SDK 升级到 23 之后,getResource.getColor(R.color.color_name) 过时, 可以使用新加入的方法 ContextCompat.getColor(context, R.color.color_name) 。
SDK 升级到 23 之后,Context类已经提供了getColor(int id)等一系列获取资源文件的方法。
源码跟踪:
@ColorInt
public static final int getColor(Context context, @ColorRes int id) {
final int version = Build.VERSION.SDK_INT;
if (version >= 23) {
return ContextCompatApi23.getColor(context, id);
} else {
return context.getResources().getColor(id);
}
}
context.getResources().getColor(id);
调用的是Resources的
public int getColor(int id) throws Resources.NotFoundException {
throw new RuntimeException(“Stub!”);
}
ContextCompatApi23.getColor(context, id);
调用的是ContextCompatApi23的
public static int getColor(Context context, int id) {
return context.getColor(id);
}
即最终调用的Context 的
public final int getColor(int id) {
throw new RuntimeException(“Stub!”);
}
- ContextCompat
- Android用ContextCompat替换getResources()获取资源
- Android用ContextCompat替换getResources()获取资源
- java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support4/content/ContextCompat;
- android6.0(M) 验证权限工具类+ContextCompat.checkSelfPermission(context, permission)
- android6.0(M) 验证权限工具类+ContextCompat.checkSelfPermission(context, permission)
- Android Eclipse java.lang.NoClassDefFoundError:android.support.v4.content.ContextCompat解决方法
- 自定义view-统计图
- 2151: 种树
- 【排序算法】直接插入排序
- Java数组冒泡排序 (代码)
- 安装 Fedora 22 后要做的13件事
- ContextCompat
- C#Socket的使用与示例
- Kafka 设计与原理详解
- PAT程序设计考题——甲级1036( Boys vs Girls ) C++实现
- 浅谈BFC块状格式化上下文环境
- maven-依赖管理-实战篇
- 关于C#静态构造函数的几点说明
- bzoj 1559: [JSOI2009]密码 AC自动机+状压dp
- hdu 3072