2012-12-19 35 views
1

我想爲列表中的狀態禁用項目設置主題的默認顏色ENABLED_STATE,所以列表項不會在我的ListView中顯示灰色。我怎樣才能stateSet在下面的代碼中使用:如何訪問View的狀態?

textview.setTextColor(textview.getTextColors().getColorForState(stateSet, android.R.attr.textColor); 

documentation我可以看到,ENABLED_STATE_SET是受保護的領域。所以我不能明確地訪問它。

P.S.如果有任何人知道任何其他方法,以列表項目的禁用顏色更改爲啓用(如使用XML)的主題的默認顏色,請把它們寫

+1

您是否嘗試過使用屬性?檢查'機器人:ATTR/textColorPrimary' –

+0

@ K-BALLO什麼..是的,我已經嘗試過很多次,但它沒有工作,給了我'造成的:android.content.res.Resources $ NotFoundException:資源不是ColorStateList(顏色或路徑)錯誤。但現在它起作用了。爲什麼??? – NullPointerException

+0

@ K-ballo,好的,我試過android:textColor =「?android:attr/textColor」,但失敗了。我也使用「android:textColor =」?android:attr/textColorPrimaryNoDisable「,它工作,但是當我點擊時,它變黑!而不是白色所以,有什麼區別? – NullPointerException

回答

1

您是否嘗試過使用屬性?檢查?android:attr/textColorPrimary

+0

請你指出爲什麼如果我使用' 「機器人:文字顏色=」 機器人:ATTR/textColorPrimaryNoDisable「'?謝謝 – NullPointerException

+0

@Godforever:因爲啓用的文字在你的主題中是黑色的? –

+0

問了一下,我的文字顏色只有當我點擊使用這個屬性的項目時才變黑。如果我不啓用它,它是白色的。默認情況下,它在啓用時變爲白色,禁用時變爲灰色。 – NullPointerException