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();
            }
        }