2016-08-17 86 views
0

我有一個包含TextView的RecyclerView。支架代碼如下:無法在RecyclerView中設置TextView背景顏色

private class PhotoHolder extends RecyclerView.ViewHolder { 
     private TextView mTitleTextView; 
     public PhotoHolder(View itemView) { 
      super(itemView); 
      mTitleTextView = (TextView) itemView; 
     } 
     public void bindGalleryItem(GalleryItem item) { 
      mTitleTextView.setText(item.toString()); 
      //--------------TEST CODE---------------- 
      mTitleTextView.setBackgroundColor(2); 
      mTitleTextView.invalidate(); 
      mTitleTextView.requestLayout(); 
     } 
    } 

現在,作爲預期,但我也想改變TextView的背景mTitleTextView.setText()工作就行了。所以,我嘗試調用setBackgroundColor()方法,但即使對無效和requestLayout的調用也不設置任何背景顏色。

有沒有人知道一種方法來確保設置背景顏色?這是設置顏色的正確位置嗎?爲什麼沒有設置?

此外,我想以編程方式做到這一點。

+0

這是什麼價值2正在設置。它應該是類似0x0000FF – Stallion

+0

如果你實際使用'2'作爲顏色,那將是透明的。使用正確的十六進制值 - 「0xAARRGGBB」 - 或「Color」中的一種方法生成正確的值。 –

+0

@pulp_fiction你用'mTitleTextView.setBackgroundColor(Color.parseColor(「#d4d446」));'嘗試過。在這裏改變你的haxcode。 –

回答

0

應該

mTitleTextView.setBackgroundColor(getResources().getColor(R.color.colorOne));

或設置,你可以使用下面的

mTitleTextView.setTextColor(getResources().getColor(R.color.colorTwo)); 

文本顏色定義您的特定顏色colors.xml

<color name="colorOne">#E60000</color> 
<color name="colorTwo">#D3D3D3</color> 

顏色代碼是不同開發活動的標準。 Android框架應該瞭解您計劃設置爲視圖的參數值。 Reference Link for Graphics color code

您可以使用類似於this軟件找到顏色代碼

+0

這工作!但是,我不明白爲什麼隨機設置數字不起作用。 –

+1

@MikeM。感謝您指出。我指的是一個工作代碼。對於哪個colors.xml具有引用的值。我已經更新了我的答案!希望我的發言清楚:) – Stallion

0

你可以刪除此:

mTitleTextView.invalidate(); 
mTitleTextView.requestLayout(); 

,並確保您從正確的地方,即調用此方法沒有其他人後,在重新設定的TextView的屬性。

+0

我也試過沒有這些方法。它沒有工作。另外,我確信沒有其他人在此之後的任何時間點設置此文本視圖的屬性。 –

+0

你可以發佈調用此方法的代碼塊嗎 –

0

設置背景顏色像這樣使用顏色資源

//Like this you change your as your desire 
mTitleTextView.setBackgroundColor(getResources().getColor(android.R.color.black)); 
0

使用這樣的:

mTitleTextView.setTextColor(getResources()的getColor(R.color.solid_red));