StateListDrawable cannot be cast to android.graphics.drawable.GradientDrawab
1172 ワード
プロジェクトの中で最近多くのクライアントがカスタマイズしたボタンの形と下地がサーバーから返されます.今日のテストで問題が発生しました.記録してください.
間違った書き方:
正しい書き方:
なぜこんなことをするのかまだ分からないけど、そうしないとテストできない...
間違った書き方:
GradientDrawable gradientDrawable = ((GradientDrawable)((TextView)helper.getView(R.id.tv_subject)).getBackground());
if(null !=item.bcolor && !TextUtils.isEmpty(item.bcolor)){
int color = Color.parseColor(item.bcolor);
gradientDrawable.setStroke(1,color);
gradientDrawable.setColor(color);
}
正しい書き方:
StateListDrawable background = (StateListDrawable) ((TextView)helper.getView(R.id.tv_subject)).getBackground();
Drawable current = background.getCurrent();
if(current instanceof GradientDrawable){
GradientDrawable gradientDrawable= (GradientDrawable) current;
if(null !=item.bcolor && !TextUtils.isEmpty(item.bcolor)){
int color = Color.parseColor(item.bcolor);
gradientDrawable.setStroke(1,color);
gradientDrawable.setColor(color);
}
}
なぜこんなことをするのかまだ分からないけど、そうしないとテストできない...