Bei mir hat es funktioniert! Und es hat Farbe, Größe, Schwerkraft usw. angewendet. Ich habe es ohne Probleme auf Handys und Tablets mit Android-API-Levels von 8 bis 17 verwendet. Beachten Sie, dass diese Methode ab Android 23 veraltet ist. Das Kontextargument wurde gelöscht, daher müsste die letzte Zeile lauten:
Denken Sie daran … dies ist nur nützlich, wenn der Stil des Textes wirklich von einer Bedingung in Ihrer Java-Logik abhängt oder Sie die Benutzeroberfläche “on the fly” mit Code erstellen … wenn nicht, ist es besser, es einfach zu tun tun:
Dadurch wird nur eine Teilmenge von Attributen festgelegt, die in a definiert werden können <style> Schild. Es macht die üblichen (Größe, Farbe, Stil), wendet aber keine anderen an (einschließlich Polsterung, Hintergrund, Schwerkraft usw.)
– karl
6. März 2014 um 0:31 Uhr
Scheint mindestens API 23 zu erfordern?
– William T. Stockente
28. Juni 2017 um 17:18 Uhr
Es gibt zwei Methoden, eine für API < 23 und eine für API 23+. Sie scheinen identisch zu sein, außer dass das für <23 ein Kontextargument verwendet und das für 23+ nicht. Unter der Haube ruft die für api 23+ die Methode für <23 auf und verwendet den Member-Kontext für die Textansicht.
– MrPlow
30. Juni 2017 um 15:05 Uhr
peter.bartos
Suchen nach setTextAppearance oder auch setTextTypeface. Es gibt eine ähnliche Frage zu stackoverflow: How to change a TextView’s style at runtime
setTextAppearance veraltete API-Ebene 23
– Athospie
29. Oktober 2016 um 22:24 Uhr
Es gibt eine neue Methode für API 23+, die einfach kein Kontextargument akzeptiert.
– MrPlow
30. Juni 2017 um 15:03 Uhr
Duggu
So viele Möglichkeiten, diese Aufgabe zu erfüllen, einige sind unten aufgeführt:-
1.
String text_view_str = "<b>Bolded text</b>, <i>italic text</i>, even <u>underlined</u>!";
TextView tv = (TextView)findViewById(R.id.ur_text_view_id);
tv.setText(Html.fromHtml(text_view_str));
SpannableString spannablecontent=new SpannableString(o.content.toString());
spannablecontent.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC),
0,spannablecontent.length(), 0);
// set Text here
tt.setText(spannablecontent);
Aktuelle Schriftart zusätzlich zum Textstil beibehalten:
textView.apply {
setTypeface(typeface, Typeface.NORMAL)
// or
setTypeface(typeface, Typeface.BOLD)
// or
setTypeface(typeface, Typeface.ITALIC)
// or
setTypeface(typeface, Typeface.BOLD_ITALIC)
}
Gemeinschaft
Diese Frage wird an vielen Stellen auf sehr unterschiedliche Weise gestellt. Ich habe es ursprünglich hier beantwortet, aber ich denke, es ist auch in diesem Thread relevant (da ich hier gelandet bin, als ich nach einer Antwort gesucht habe).
Es gibt keine einzeilige Lösung für dieses Problem, aber dies hat für meinen Anwendungsfall funktioniert. Das Problem ist, dass der Konstruktor „View(context, attrs, defStyle)“ nicht auf einen tatsächlichen Stil verweist, sondern ein Attribut benötigt. Wir werden:
Definieren Sie ein Attribut
Erstellen Sie einen Stil, den Sie verwenden möchten
Wenden Sie einen Stil für dieses Attribut auf unser Thema an
Erstellen Sie neue Instanzen unserer Ansicht mit diesem Attribut
Definieren Sie in ‚res/values/attrs.xml‘ ein neues Attribut:
Schließlich können Sie in Ihrem benutzerdefinierten TextView jetzt den Konstruktor mit dem Attribut verwenden und es wird Ihren Stil erhalten
public class CustomTextView extends TextView {
public CustomTextView(Context context) {
super(context, null, R.attr.customTextView);
}
}
Es ist erwähnenswert, dass ich customTextView wiederholt in verschiedenen Varianten und an verschiedenen Stellen verwendet habe, aber es ist in keiner Weise erforderlich, dass der Name der Ansicht mit dem Stil oder dem Attribut oder irgendetwas übereinstimmt. Außerdem sollte diese Technik mit jeder benutzerdefinierten Ansicht funktionieren, nicht nur mit TextViews.
Sie können auf den folgenden Link verweisen und die oberste 1-Antwort sperren stackoverflow.com/questions/6200533/…
– Tiep
21. Oktober 2013 um 0:46 Uhr
Bitte überprüfen Sie meine Antwort hier. Ich hoffe, das wird Ihnen helfen
– Zusammengefasster Jain
25. November 2016 um 10:39 Uhr