2016-05-01 9 views
0

特定の日のクラスリストを含むリサイクラビューがあります。各クラスには、それに関連付けられた特定の色があります。この色は私がholder.colourBar.setBackgroundColor()setBackgroundColor(int)はリサイクラのビューでは機能しません。 setBackgroundResource()は動作します

を呼び出して、私のリサイクルアダプタで各CardView-

 <View 
      android:id="@+id/colourBar" 
      android:layout_width="4dp" 
      android:layout_height="60dp" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentTop="true" 
      /> 

側の図に示されているが、これは効果がありません。渡されるint値は、たとえ私がアプリの原色をすべてに渡しても、それはまだ表示されませんが、間違いなく有効です。 ただし、holder.colourBar.setBackgroundResource(R.color.colorPrimaryLight); を呼び出すと、ビューの背景色が設定されます。

整数のカラー値を渡してもカラーが表示されないのはなぜですか?

答えて

0

setBackgroundColor(int)の入力はsetBackgroundResource(int)とは異なります。

R.color.colorPrimaryLightのようなリソースを使用する場合は、setBackgroundResource(R.color.colorPrimaryLight)を使用してください。 setBackgroundColor(int)と同等では次のようになります。

setBackgroundColor(getResources().getColor(R.color.colorPrimaryLight)); 

setBackgroundColor(int)の有効な使用はsetBackgroudColor(Color.parseColor("#FF0000"))のようなものでもよいが、可能な限りのリソースを使用することはベストプラクティスであるだろう。

0

R.color.colorPrimaryLightあなたはsetBackgroundColor()で使用したい場合は、この

holder.colourBar.setBackgroundColor(getResources().getColor(R.color.colorPrimaryLight)) 
のような方法に getResources().getColor(R.color.colorPrimaryLight)

を呼び出す必要はありませんリソースの色であります

関連する問題