В зависимости от того, какой стиль вы хотите установить, вы должны использовать разные методы. У материала TextAppearance есть свой собственный установщик, у TypeFace свой собственный установщик, у фона есть собственный установщик и т. Д.

я есть приложение для Android, на котором, когда пользователь нажимаетTextViewЯ хотел бы применить определенный стиль.

Я думал, чтобы найтиtextview.setStyle() но его не существует Я пытался

textview.setTextAppearance();

Но это не работает.

 Fletch17 янв. 2012 г., 16:32
@Falmarri Вы просматривали API-документы TextView? Если это так, может быть, вы могли бы сказать что-то более конструктивное.
 Jonathan Roth07 янв. 2011 г., 23:54
Вы пробовали: textView.setTextTypeface?developer.android.com/reference/android/widget/...
 Floern07 янв. 2011 г., 23:00
Я где-то читал, что это невозможно ...stackoverflow.com/questions/2016249/... , Но вы можете установить некоторые свойства отдельно.

Ответы на вопрос(8)

попробуйте эту строку кода.

textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);

здесь он получит текущий шрифт из этого текстового представления и заменит его новым шрифтом. Новый шрифт здесьDEFAULT_BOLD но вы можете применить гораздо больше.

 Md. Sajedul Karim30 мар. 2016 г., 17:46
Я отредактировал свой ответ
 Muhammed Refaat30 мар. 2016 г., 15:23
Вы бы лучше объяснили, почему ваш код решит его проблему, спасибо.
 HBG29 июн. 2017 г., 16:51
ОП хочет изменить стиль,не Гарнитура.

textView.setTypeface(Typeface.DEFAULT_BOLD); быть самым простым методом.

 sfera30 июн. 2017 г., 17:34
Правда, до сих пор это был самый простой метод - и, насколько я помню, единственный метод - на момент публикации. Я не уверен, что тем временем был добавлен новый метод API, который позволяет менять «стиль» на полужирный, не меняя гарнитуру. Пожалуйста, поправьте меня, если я ошибаюсь.
 HBG29 июн. 2017 г., 16:53
Это меняет гарнитуру.не стиль как определено OP.
Решение Вопроса

Я сделал это, создав новый файл XMLres/values/style.xml следующее:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="boldText">
        <item name="android:textStyle">bold|italic</item>
        <item name="android:textColor">#FFFFFF</item>
    </style>

    <style name="normalText">
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#C0C0C0</item>
    </style>

</resources>

У меня также есть записи в моем файле "strings.xml", как это:

<color name="highlightedTextViewColor">#000088</color>
<color name="normalTextViewColor">#000044</color>

Затем в своем коде я создал ClickListener, чтобы перехватить событие касания в этом TextView:РЕДАКТИРОВАТЬ: Начиная с API 23 «setTextAppearance» устарело

    myTextView.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view){
                    //highlight the TextView
                    //myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
    if (Build.VERSION.SDK_INT < 23) {
       myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
    } else {
       myTextView.setTextAppearance(R.style.boldText);
    }
     myTextView.setBackgroundResource(R.color.highlightedTextViewColor);
                }
            });

Чтобы вернуть его обратно, вы должны использовать это:

if (Build.VERSION.SDK_INT < 23) {
    myTextView.setTextAppearance(getApplicationContext(), R.style.normalText);
} else{
   myTextView.setTextAppearance(R.style.normalText);
}
myTextView.setBackgroundResource(R.color.normalTextViewColor);
 Lukas24 апр. 2013 г., 17:07
На самом деле это не работает со стилями теней. Если вы хотите изменить тень, вы должны сделать это следующим образом: lockText.setShadowLayer (20, 4, 4, 0xFFFF0000);
 Shajeel Afzal19 мар. 2013 г., 12:31
Превосходный ответ !!
 Justin Fiedler21 сент. 2016 г., 19:13
Чтобы избежать проверки SDK, вы можете использовать TextViewCompat.setTextAppearance (myTextView, R.style.myStyle);

используяtextView.setTextTypeface работает, я просто использовал его в приложении несколько секунд назад.

textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.
 Pijusn13 авг. 2012 г., 10:36
textView.setTypeface (null, Typeface.BOLD) - это то, что у меня сработало. Конечно, вы могли бы использовать 1 вместо этого, но я думаю, что не рекомендуется вводить константы вручную. Лучше использовать предопределенные переменные в библиотеках.
 Felipe02 дек. 2012 г., 02:39
Хороший! Моя ошибка заключалась в том, что я отправлял свою старую гарнитуру в первом параметре. Так что это работает, когда я изменяю NORMAL -> BOLD, но не BOLD -> NORMAL. Я не знал, что первый параметр может быть нулевым! Теперь у меня все отлично работает!
 erdomester10 мар. 2012 г., 13:32
жирный не работает для меня
 peceps16 июн. 2011 г., 10:32
Вы можете использовать textView.setTypeface (null, Typeface.BOLD); textView..setTypeface (null, Typeface.ITALIC); textView.setTypeface (null, Typeface.BOLD_ITALIC);
 Chris.Jenkins11 сент. 2012 г., 18:00
Не поощряйте людей использовать целые вместо констант

Программно: время выполнения

Вы можете сделать это программно, используя setTypeface ():

textView.setTypeface(null, Typeface.NORMAL);      // for Normal Text
textView.setTypeface(null, Typeface.BOLD);        // for Bold only
textView.setTypeface(null, Typeface.ITALIC);      // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic

XML: время разработки

Вы также можете установить в XML:

android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"

Надеюсь, это поможет

Summved

TextView tvCompany = (TextView)findViewById(R.layout.tvCompany);
tvCompany.setTypeface(null,Typeface.BOLD);

гарнитура

какой стиль вы хотите установить, вы должны использовать разные методы. У материала TextAppearance есть свой собственный установщик, у TypeFace свой собственный установщик, у фона есть собственный установщик и т. Д.

http://developer.android.com/reference/android/widget/TextView.html

Чтобы стилизовать ваши строки, присоедините объекты android.text.style. * К SpannableString или посмотрите документацию «Доступные типы ресурсов» для примера установки форматированного текста в файле ресурсов XML.

Ваш ответ на вопрос