2012-12-19 39 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