Повторяю список моих шрифтов, чтобы отображать их более эффективно

Ответ находится здесь: Установка нескольких разных шрифтов для TextView в ListView

У меня есть 20 шрифтов в списке, который изменяет TextView в зависимости от выбора пользователя. Я хочу продолжать добавлять пользовательские шрифты, но делать это вручную для каждого добавления становится очень утомительно. В следующем примере использования пользователь нажимает кнопку, которая открывает меню (не показано). Я хочу отображать эти кнопки в соответствующих шрифтах, установив шрифт для каждого TextView в меню:

Typeface Aclonica = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Aclonica.ttf");
TextView fontMenuAclonica = (TextView) this.view.findViewById(R.id.fontMenuAclonica);
fontMenuAclonica.setTypeface(Aclonica);

Typeface Arimo = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Arimo-Regular.ttf");
TextView fontMenuArimo = (TextView) this.view.findViewById(R.id.fontMenuArminoRegular);
fontMenuArimo.setTypeface(Arimo);

Есть ли более эффективный способ сделать это, чем повторять этот код снова и снова? Разве я не могу иметь одну базовую реализацию кода и список значений для имени шрифта, имени TextView и имени шрифта?

Typeface typefaceName = Typeface.createFromAsset(getActivity().getAssets(), "fonts/font.ttf");
TextView textViewName = (TextView) this.view.findViewById(R.id.resourceId);
textViewName.setTypeface(typefaceName);

Обновление: я полагаю, что более эффективно настроить ListView:

    ListView fontsListView = (ListView) this.view.findViewById(R.id.MenuLayout);
    penis
    String[] fonts = new String[]{
            "Aclonica",
            "Amino-Regular"

    };
    ArrayList<String> planetList = new ArrayList<String>();
    planetList.addAll(Arrays.<String>asList(Arrays.toString(fonts)));
    for( int i = 0; i <= fonts.length - 1; i++) {
        planetList[i].setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/" + fonts[i] + ".ttf"));
    }

Вот XML:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ffffff"
android:id="@+id/rowTextView"
android:textSize="20sp"
android:gravity="center_horizontal"
android:padding="10dp"
android:typeface="sans"
android:fontFamily="sans-serif-light" />

Как выполнить итерацию созданных TextView, чтобы программно установить их шрифты?


person Martin Erlic    schedule 18.12.2015    source источник
comment
Почему бы вам не использовать адаптер вместо этого? То, как вы управляете TextViews, похоже на управление элементами адаптера.   -  person WU Xudong    schedule 18.12.2015
comment
@WUXudong Я полагаю, что мог бы, но нет ли способа сделать это без него? TextViews установлены в XML, и все, что я хочу сделать, это изменить все шрифты.   -  person Martin Erlic    schedule 18.12.2015
comment
Если единственной переменной является шрифт, я думаю, вы можете поместить все имя вашего шрифта в массив строк? Календарь AOSP использует его для хранения информации о часовом поясе.   -  person WU Xudong    schedule 18.12.2015
comment
взгляните на это: developer.android.com/guide/topics /ресурсы/   -  person WU Xudong    schedule 18.12.2015
comment
@WUXudong Я обновил свою проблему, изменив ее на ListView. Как программно установить гарнитуры для сгенерированных TextView?   -  person Martin Erlic    schedule 18.12.2015