2017-04-26 66 views
0

我正在嘗試使用跨度來更改我的文本textviews的部分部分的顏色。但我一直得到這個奇怪的錯誤,就像我的顏色無法識別。Connot從'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); 

Screenshot of error

我也試過,但我仍然得到了同樣的錯誤:

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

的問題是,你傳遞一個'int',而方法需要另一種類型的參數(在您附加的錯誤消息中提到的參數)。不幸的是,我無法幫助更多,因爲我不知道'xamarin'和他們的API。作爲一個起點,檢查是否可以將'int'轉換爲預期的類型。關於您的問題,請避免包含截圖的鏈接,其中可以看到您遇到的問題,嘗試在問題中包含所有信息,這樣可以讓讀者更容易理解問題。謝謝 – Christos

回答

1

ForegroundColorSpan需要一個Color,不是intColor.HoloBlueDarkContextCompat.GetColor回報是整數,所以你需要將其轉換爲一個顏色:

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

感謝您的轉換公式! – Elisa