记录我的应用我的Logcat说:警告: ... has unresolved theme attributes! Consider using Resources.getDrawable(int, Theme) or Context.getDrawable(int).
产生警告的代码:
if (mCards.get(position).isFavorite()) {
viewHolder.mIbStar
.setImageDrawable(mContext.getResources()
.getDrawable(R.drawable.btn_is_fav));
} else {
viewHolder.mIbStar
.setImageDrawable(mContext.getResources()
.getDrawable(R.drawable.btn_isnt_fav));
}
我搜索了这个日志,但没有找到任何有用的东西。怎么知道这个问题?该程序是稳定的,所以没有Nullpointer ..
提前致谢
答案 0 :(得分:4)
问题是系统无法找到相关主题来解析这些属性值。 这就是logcat建议您使用提供主题的Resources.getDrawable(int, Theme)方法的原因, 或使用上下文将使用其当前主题的Context.getDrawable(int)方法:
返回与特定资源ID和关联的可绘制对象 为当前主题设计。
而且,根据Android官方文档: http://developer.android.com/reference/android/content/res/Resources.html#getDrawable(int)
此方法在API级别22中已弃用。请改用getDrawable(int, Theme)。
,更具体地说是
注意:要获得主题drawable,请使用Context.getDrawable(int)或 getDrawable(int, Theme)传递了所需的主题。
考虑更换
mContext.getResources().getDrawable(int)
通过
mContext.getDrawable(int)
比如提出logcat。