create a base class to activate
public class BaseActivity extends AppCompatActivity { protected String fontPath ="fonts/smartoff.net_verdana.ttf"; private Typeface typeface; protected int[] getTextViewsResIds() { return new int[0]; } public void setFont() { typeface = Typeface.createFromAsset(getAssets(), fontPath); for (int i = 0; i<getTextViewsResIds().length; i++){ TextView textView = (TextView) findViewById(getTextViewsResIds()[i]); textView.setTypeface(typeface); } } }
then in the activity you are interested in inherit from the base
public class TestActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_scrolling); setFont(); } @Override protected int[] getTextViewsResIds() { return new int[]{R.id.umivanie_text,R.id.eda_text,R.id.son_text};; } }
override the getTextViewsResIds method, which will return the id of your TextView (for each one, activate your own ones defined in xml layout) and call setFont in onCreate