Skip to content Skip to sidebar Skip to footer

Xamarin: Determine If Element In Getspans() Is Bold Or Italic?

Native Android Spanned.getSpans(......,SyleSpan.class) function return type StyleSpan[] Xamarin ISpanned.GetSpans(......) function returns type Java.lang.Object[] though it returns

Solution 1:

You can do everything. ;) There is just no comfortable generic wrapper for the GetSpans method.

ISpanned ss = ...;
var spans = ss.GetSpans(0, 20, Class.FromType(typeof(SyleSpan)));
foreach (SyleSpan span in spans)
{
    // do what you wantif(span.Style == TypefaceStyle.Bold)
    {
        Debug.WriteLine("Xamarin can find bold spans, too :)");
    }
}

if you want to access it generic:

publicstaticclassISpannedExtension
{
    publicstatic TSpan[] GetSpans<TSpan>(this ISpanned ss, int startIndex, int length)
    {
        return ss.GetSpans(startIndex, length, Class.FromType(typeof(TSpan)))
            .Cast<TSpan>()
            .ToArray();
    }
}

// usage
ISpanned ss = ...;
var spans = ss.GetSpans<SyleSpan>(0, 20);   

Post a Comment for "Xamarin: Determine If Element In Getspans() Is Bold Or Italic?"