android - 无法在 Android Studio 中格式化部分 TextView 或 Button 文本
问题描述
我正在使用 Android Studio 创建一个英语学习应用程序,我想在按钮上加几个字母,但我做不到。例如,我希望按钮显示“我喜欢bas ketball”,因为当我们发音这个词时,篮球中的第一个音节会被强调。
但是我不能让它工作。这是我的strings.xml。
<string name="test">I like <b>bas</b>ketball</string>
这是我的activity.xml。
<Button
android:id="@+id/test"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/test"
android:textAllCaps="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+string/test"
android:textAllCaps="false" />
</LinearLayout>
Button 和 TextView 都无法识别格式。
我将有 400 多个按钮,这些按钮需要一组不同的字符加粗,所以我不想使用可扩展的字符串来编码。
有简单的解决方案吗?
解决方案
第一种方法-
<string name="test">I like <b> bas</b>ketball.</string>
如果您使用 String.xml 中的字符串,则需要将字符串更新为
但您需要在 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));
}
希望这会有所帮助。
推荐阅读
- katalon-studio - 无法通过使用 katalon studio 启动应用程序,出现如下错误:
- angular - 如何不重新渲染所有 RadListView 项目
- sql - 如何在 SQL 中的动态列表上使用 IN 子查询?
- javascript - 在rails + javascript中单击单选按钮时显示文本字段
- tensorflow - CNN vs SVM 用于微笑强度检测训练?
- javascript - 如何在 ES6 模块节点应用程序中包含 commonjs 模块?
- loops - Perl:向 foreach 循环添加异常
- python - Jupyter Notebook 中的键盘中断
- javascript - 是否附加了调试器?
- android - 为什么图像上传在 Firebase 存储中失败?