public void setIndicator(string indicatorName) { if (TextUtils.IsEmpty(indicatorName)) { return; } Java.Lang.StringBuilder drawableClassName = new Java.Lang.StringBuilder(); if (!indicatorName.Contains(".")) { string defaultPackageName = Class.Package.Name; drawableClassName.Append(defaultPackageName) .Append(".indicators") .Append("."); } drawableClassName.Append(indicatorName); try { Class drawableClass = Class.ForName(drawableClassName.ToString()); CustomIndicator indicator = (CustomIndicator)drawableClass.NewInstance(); setIndicator(indicator); } catch (ClassNotFoundException e) { //Log.e(TAG, "Didn't find your class , check the name again !"); } catch (InstantiationException e) { } catch (IllegalAccessException e) { //e.printStackTrace(); } }
public void setIndicator(CustomIndicator d) { if (mIndicator != d) { if (mIndicator != null) { mIndicator.SetCallback(null); UnscheduleDrawable(mIndicator); } mIndicator = d; //need to set indicator color again if you didn't specified when you update the indicator . setIndicatorColor(mIndicatorColor); if (d != null) { d.SetCallback(this); } PostInvalidate(); } }