Logcat说:“资源有未解决的主题属性”

时间:2015-03-08 21:49:58

标签: android resources warnings drawable logcat

记录我的应用我的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 ..

提前致谢

1 个答案:

答案 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。