首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 動態設置 TextView 顏色:getColor 而非資源 ID

     編輯:程式設計綜合問答

錯誤代碼

textView.setBackgroundColor(R.color.white);      // 錯誤:傳入資源 ID,非顏色值
textView.setTextColor(R.color.solid_red);        // 同理錯誤

正確代碼

textView.setBackgroundColor(ContextCompat.getColor(context, R.color.white));
textView.setTextColor(ContextCompat.getColor(context, R.color.solid_red));

原因

  • setBackgroundColor(int color) 參數是顏色值(如 0xFFFFFFFF),而 R.color.xxx 是資源索引整數(如 0x7f060001),兩者含義完全不同。
  • ContextCompat.getColor 內部調用 Resources.getColor,正確解析顏色資源並兼容舊版 API。

XML 中直接引用

<TextView
    android:background="@color/white"
    android:textColor="@color/solid_red" />

XML 會自動解析資源引用,無需手動獲取。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved