无法在 Android Studio 中格式化部分 TextView 或 Button 文本
Posted
技术标签:
【中文标题】无法在 Android Studio 中格式化部分 TextView 或 Button 文本【英文标题】:Cannot format partial TextView or Button text in Android Studio 【发布时间】:2020-05-23 04:19:13 【问题描述】:我正在使用 android Studio 创建一个英语学习应用程序,我想将按钮上的几个字母加粗,但我做不到。例如,我希望按钮显示“我喜欢 basketball”,因为当我们发音这个词时,篮球的第一个音节会被强调。
但是我不能让它工作。这是我的 strings.xml。
<string name="test">I like <b>bas</b>ketball</string>
这是我的activity.xml。
<Button
android:id="@+id/test"
android:layout_
android:layout_
android:text="@string/test"
android:textAllCaps="false" />
<TextView
android:layout_
android:layout_
android:text="@+string/test"
android:textAllCaps="false" />
</LinearLayout>
Button 和 TextView 都无法识别格式。
我将拥有超过 400 个按钮,这些按钮需要一组不同的字符加粗,因此我不想使用可跨字符串来编写代码。
有简单的解决方案吗?
【问题讨论】:
【参考方案1】:第一种方法-
如果您使用来自 String.xml 的字符串,则需要将字符串更新为 <string name="test">I like &lt;b> bas&lt;/b>ketball.</string>
但您需要在 Activity 类中添加以下代码才能工作 -
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
textView.setText(html.fromHtml(getString(R.string.test), Html.FROM_HTML_MODE_LEGACY));
else
textView.setText(Html.fromHtml(getString(R.string.test));
第二种方法-
在您的String.xml
文件顶部添加以下代码
<?xml version="1.0" encoding="utf-8"?>
然后在资源中添加你的字符串 -
<resources>
<string name="test"><![CDATA[I like <b> bas</b>ketball]]></string>
</resources>
然后在活动类中设置HTML
文本如下 -
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
textView.setText(Html.fromHtml(getString(R.string.test), Html.FROM_HTML_MODE_LEGACY));
else
textView.setText(Html.fromHtml(getString(R.string.test));
希望这会有所帮助。
【讨论】:
粗体标签不起作用。如果你在 Android Studio 中这样做,它对你有用吗? 糟糕,我已经更新了代码并在模拟器上进行了测试,它工作正常,请检查。 好的,谢谢 Dipankar。我感谢您的帮助。我会试试的。 @RobPaterson 我已经更新了 2 种方法,您可以尝试任何适合您的方法。以上是关于无法在 Android Studio 中格式化部分 TextView 或 Button 文本的主要内容,如果未能解决你的问题,请参考以下文章
android studio怎么快速打出System.out.println