无法在 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 的字符串,则需要将字符串更新为 &lt;string name="test"&gt;I like &amp;lt;b&gt; bas&amp;lt;/b&gt;ketball.&lt;/string&gt;

但您需要在 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

android studio中无法识别视频文件

在 Android Studio 中使用 Retrofit 无法从 000webhost 获得响应

Android Studio 不呈现 WebP 格式

android studio模拟器无法播放视频

Android Studio 代码格式问题