无法从 'int' Android.OS.Parcel 转换



我正在尝试使用跨度来更改文本文本视图部分的颜色。但是我一直遇到这个奇怪的错误,就像我的颜色未被识别。

这是我的代码

        var span2 = new SpannableString(beforeMisterX + misterX);
        span2.SetSpan(new ForegroundColorSpan(ContextCompat.GetColor(this, Resource.Color.abc_hint_foreground_material_dark)), 15, 6, 0);
        lblMisterX.SetText(span2, TextView.BufferType.Spannable);

错误在此行:

span2.SetSpan(new ForegroundColorSpan(ContextCompat.GetColor(this, Resource.Color.abc_hint_foreground_material_dark)), 15, 6, 0);

错误的屏幕截图

我也尝试过,但我仍然遇到相同的错误:

span.SetSpan(new ForegroundColorSpan(Color.HoloBlueDark), 15, 6, 0);

ForegroundColorSpan期望 Color,而不是 intColor.HoloBlueDark,而从 ContextCompat.GetColor中的返回是ints,因此您需要将其转换为颜色:

var color = new Android.Graphics.Color(ContextCompat.GetColor(this, Resource.Color.abc_hint_foreground_material_dark));
span2.SetSpan(new ForegroundColorSpan(color), 15, 6, 0);

最新更新