I know this has been asked a very long time ago, but this might help others.
Apparently, you can't use the typeface object as an input to the setSpan method, although it does take an Object as its first argument (and everything is an Object), but to set a custom font the first argument needs to be TypefaceSpan object:
s.setSpan(new TypefaceSpan(***), 0, s.length, flag); // whatever flag you are using
The problem is, TypefaceSpan takes either a String or a Parcelable, not a typeface object, so as far as I understand, you can't set a custom font that is created from an asset for example.
This is where I am stuck actually because I am looking for a solution for this rather than the solution suggested here by "notme" which is extending TypefaceSpan object, although it probably works but I am looking for a more simpler and elegant way to do this.
Good luck and happy coding.