我被这个看似简单的任务难住了。
我只想将textview
的颜色和linearlayout
的背景颜色更改为colors.xml
资源文件中设置的颜色。
我试过了
myTextView.SetTextColor(this.Resources.GetColor(Resource.Color.myColor));
但这是不赞成的。
"然后我试着“
myTextView.SetTextColor(ContextCompat.GetColor(context, Resource.Color.myColor));
但是ContextCompat.GetColor()
返回的是int
而不是Android.Graphics.Color
,因此不会编译。
然后我尝试将颜色设置为style
的一部分:
<style name="myColorStyle">
<item name="android:textColor">
@color/myColor
</item>
...
</style>
并首先使用
myTextView.SetTextAppearance(this, Resource.Style.myColorStyle);
但也不赞成这样做
"我试过了"
myTextView.SetTextAppearance(Resource.Style.myColorStyle);
但这会抛出一个异常:
Java.Lang.NoSuchMethodError:没有非静态方法“Landroid/widget/TextView;. set文本外观(I)V”
这个简单的任务是如何完成的?
我正在使用Xamarin和Visual StudioC#编写代码。
5条答案
按热度按时间2fjabf4q1#
在2017年,这是通过资源ID获取颜色的正确方法,尽管看起来非常复杂:
依据:https://forums.xamarin.com/discussion/54193/res-getcolor-is-deprecated
wnavrhmk2#
不需要这么复杂,只需使用
或
或
qxgroojn3#
如果你想跳过xml,这很简单。
也可用于设置文本视图的背景颜色。
ohfgkhjo4#
更新
我第一次没有注意到它,但我看到你已经尝试了这个解决方案。你使用什么版本?在我的它是不是不赞成。
在资源/值/颜色. xml中
Xamarin Resource.Color
mqkwyuun5#
myTextView.TextColor =颜色.解析(“红色”);