gpt4 book ai didi

Android 评分栏 : getProgressDrawable doesn't cast to right Class

转载 作者:太空狗 更新时间:2023-10-29 13:20:58 26 4
gpt4 key购买 nike

我正在使用

Android RatingBar change star colors

这行代码

    LayerDrawable stars = (LayerDrawable) rating_bar.getProgressDrawable();

在我的 Nexus 4 模拟器 API v21 上运行良好。在我的 Galaxy S4 API v19 上尝试相同的代码时,我收到以下错误消息:

 Caused by: java.lang.ClassCastException: android.support.v7.internal.widget.TintDrawableWrapper cannot be cast to android.graphics.drawable.LayerDrawable

发生了什么事?

我正在使用最新的构建工具 22 进行构建,我的目标 API 也是 22。

最佳答案

错误消息中清楚地解释了发生的情况:

TintDrawableWrapper cannot be cast to android.graphics.drawable.LayerDrawable

支持库创建了一个包装器来处理追溯兼容性,您只需要考虑它即可。查看 lib 实现,它可能包含一个 LayerDrawable

您需要按照以下方式做一些事情:

LayerDrawable stars = getProgressDrawable(rating_bar);
}

private LayerDrawable getProgressDrawable(RatingBar ratingBar) {
if (Build.VERSION >= LOLLIPOP) {
return (LayerDrawable) ratingBar.getProgressDrawable();
} else {
// fetch the LayerDrawable based on Google's support implementation,
// probably a simple findViewById()
}
}

关于Android 评分栏 : getProgressDrawable doesn't cast to right Class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29078745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com