TextView isBold всегда возвращает NORMAL

Я устанавливаю Typeface текстового вида следующим образом

textView.setTypeface(tf_roboto_medium, Typeface.BOLD);

Когда я проверяю стиль с помощью этой команды, он оценивается как true.

if (textView.getTypeface().getStyle() == Typeface.NORMAL) {
// always here
}
else {
// never here
}

[EDIT] Вот мой xml-контент для TextView

<TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="Train"
                android:textColor="#777777"
                android:gravity="bottom|center"
                android:singleLine="true"
                android:id="@+id/txt_train"
                android:layout_gravity="left"
                android:layout_weight="15"
                android:textSize="32px"
                android:onClick="onTrainClick"
                android:clickable="true" />

Что я делаю неправильно?

PS: Я читал другие сообщения, просящие одно и то же. Никто из них, похоже, не работает для меня. Таким образом, quesiton

Ответ 1

Попробуйте выполнить одно из следующих действий:

  • if (textView.getTypeface().isBold()) {
  • if ((textView.getTypeface().getStyle() & Typeface.BOLD) > 0) {

Из того, что я вижу, есть битовая маска, используемая для стилей шрифта. Normal == 0, поэтому могут быть проблемы с 0 и 0

Ответ 2

Вы можете сделать строку:

<string name="train"><b>Train</b></string>

И затем установите:

android:text="@string/train"