Formatting and Styling
Here are a few important things you should know about how to properly
format and style your string resources.
Escaping apostrophes and quotes
If you have an apostrophe or a quote in your string, you must either escape it or enclose the
whole string in the other type of enclosing quotes. For example, here are some stings that
do and don't work:
<string
name
=
"good_example"
>
"This'll work"
</string>
<string
name
=
"good_example_2"
>
This\'ll also work
</string>
<string
name
=
"bad_example"
>
This doesn't work
</string>
<string
name
=
"bad_example_2"
>
XML encodings don't work
</string>
Formatting strings
If you need to format your strings using String.format(String, Object...)
,
then you can do so by putting
your format arguments in the string resource. For example, with the following resource:
<string
name
=
"welcome_messages"
>
Hello, %1$s! You have %2$d new messages.
</string>
In this example, the format string has two arguments: %1$s
is a string and %2$d
is a decimal number. You can format the string with arguements from your application like this:
Resources
res
=
getResources
()
;
String
text
=
String
.
format
(
res
.
getString
(
R
.
string
.
welcome_messages
),
username
,
mailCount
);
Styling with HTML markup
You can add styling to your strings with HTML markup. For example:
<?
xml version
=
"1.0"
encoding
=
"utf-8"
?>
<resources>
<string
name
=
"welcome"
>
Welcome to
<b>
Android
</b>
!
</string>
</resources>
Supported HTML elements include:
-
<b>
for bold
text.
-
<i>
for italic
text.
-
<u>
for underline
text.
Sometimes you may want to create a styled text resource that is also used as a format
string. Normally, this won't work because the String.format(String, Object...)
method will strip all the style
information from the string. The work-around to this is to write the HTML tags with escaped
entities, which are then recovered with fromHtml(String)
,
after the formatting takes place. For example:
- Store your styled text resource as an HTML-escaped string:
<resources>
<string
name
=
"welcome_messages"
>
Hello, %1$s! You have <b>%2$d new messages</b>.
</string>
</resources>
In this formatted string, a <b>
element is added. Notice that the opening bracket is
HTML-escaped, using the <
notation.
- Then format the string as usual, but also call
fromHtml(String)
to
convert the HTML text into styled text:
Resources
res
=
getResources
()
;
String
text
=
String
.
format
(
res
.
getString
(
R
.
string
.
welcome_messages
),
username
,
mailCount
);
CharSequence
styledText
=
Html
.
fromHtml
(
text
);
Because the fromHtml(String)
method will format all HTML entities, be sure to
escape any possible HTML characters in the strings you use with the formatted text, using
htmlEncode(String)
. For instance, if you'll be passing a string argument to
String.format()
that may contain characters such as
"<" or "&", then they must be escaped before formatting, so that when the formatted string
is passed through fromHtml(String)
, the characters come out the way they were
originally written. For example:
String
escapedUsername
=
TextUtil
.
htmlEncode
(
username
);
Resources
res
=
getResources
()
;
String
text
=
String
.
format
(
res
.
getString
(
R
.
string
.
welcome_messages
),
escapedUsername
,
mailCount
);
CharSequence
styledText
=
Html
.
fromHtml
(
text
);
分享到:
相关推荐
本知识点主要探讨的是如何在数据加载完成之前,通过占位符显示预计内容区域,以提升应用的流畅性和响应速度。 首先,"预加载"是指在用户实际查看内容之前,提前加载部分或全部数据。这在移动设备上尤其重要,因为...
本文将深入探讨Android布局中常用的占位符及其用法。 首先,我们要了解Android布局中的基本元素,如LinearLayout、RelativeLayout、ConstraintLayout等。这些布局容器允许开发者组织和定位应用的UI组件。在这些布局...
在Android中,占位符对应的是`EditText`控件的`hint`属性。在XML布局文件中,我们这样设置: ```xml android:id="@+id/email" android:hint="请输入您的电子邮件地址" /> ``` 在Java代码中,我们可以这样修改`...
这里`getString(R.string.my_text)`获取到了`strings.xml`中定义的字符串资源,然后使用`String.format()`方法对其中的占位符进行了替换,最终得到格式化的字符串。 ### 三、进阶技巧与注意事项 #### 3.1 多个占位...
在实际应用中,你需要根据XML文件的具体结构,调整这些示例代码中的“node_name”等占位符。同时,为了提高性能和节省内存,对于大型XML文件,建议使用SAX或PullParser解析。 总结,Android和Java解析XML文件时,...
1. **占位符格式**:确保在`strings.xml`文件中定义的占位符格式与Java代码中提供的参数类型匹配。 2. **资源引用**:正确引用资源ID,如`R.string.alert`,避免因为错误的资源ID导致的异常。 3. **国际化支持**:在...
在Android开发中,`strings.xml`文件是管理应用中所有文本资源的核心文件。它使得开发者可以集中处理字符串,便于国际化和本地化,同时也方便代码维护。在这个`StringDemo`示例中,我们将深入探讨如何使用`strings....
在Android应用开发中,通常每个Activity都需要在AndroidManifest.xml文件中进行注册,以便系统能够知道它们的存在并管理它们的生命周期。然而,在某些特殊情况下,开发者可能会选择不将某个Activity注册在清单文件中...
在“Android使用模板生成Word文档的demo”中,开发者可能会创建一个模板文件,其中包含占位符,这些占位符将在运行时被实际数据替换。这可以简化文档生成过程,因为只需要维护一个结构化的模板,而不是为每个新文档...
通过在`<string>`标签内使用占位符,可以插入变量或者动态数据。例如: ```xml 你好,%1$s!今天是%2$s。 ``` 在Java代码中,可以这样使用: ```java String user = "小明"; String date = "2023年4月1日"; ...
在Android应用开发中,资源管理是非常重要的一部分,其中string.xml文件用于存储应用程序中使用的文本字符串。这不仅方便了代码的维护,还支持多语言环境。本文将深入探讨Android string.xml中的替换方法,以及如何...
- 使用变量和占位符,例如`<string name="welcome_message">Hello, %s!</string>`,在运行时动态填充内容。 - 使用Android Studio的Translation Editor,可以直观对比不同语言的字符串,检查一致性。 6. **国际化...
3. **填充数据**:将从Android应用中获取的数据(例如,从数据库、网络请求或其他数据源)填充到找到的占位符中。 4. **保存或导出结果**:完成填充后,更新Word文档并保存为新的文件。在Android应用中,这可能涉及...
3. 可变字符串:对于包含变量的字符串,如“欢迎,%s”,需要保留占位符,并确保在代码中正确传递参数。 五、注意事项 1. 保持ID不变:翻译时,必须保留原有的字符串ID,因为这些ID在代码中被引用。 2. 文本长度:...
在Android开发中,常见的图片加载库有Glide、Picasso和Fresco,它们可以帮助我们优化图片加载性能,避免内存溢出,并支持占位符和错误图。 7. **读取Markdown文件(readme.md)**: 这个文件可能是项目的说明文档...
在Android开发中,`string.xml` 文件是应用中管理字符串资源的重要部分,它允许开发者集中存储和管理应用程序中的文本内容,提高代码可读性和维护性。`%1$s` 和 `%d\%` 是在 `string.xml` 文件中常用的格式化符号,...
3. **替换占位符**:找到占位符后,用程序中的数据替换它们。这可能涉及到字符串匹配和替换操作。 4. **写入新内容**:将替换后的数据写回到文档,使用XWPFRun类添加新的文本,或者更新现有的XWPFRun对象。 5. **...
4. **替换占位符**:在`placeholders`参数中,键是模板文件中的占位符,值是替换后的实际文本。例如,`{"name": "张三", "address": "北京市朝阳区"}`。 5. **保存和查看文档**:生成的Word文档可以保存到设备的...
总结,通过URL获取网络图片并在Android应用中显示,主要涉及以下几个知识点: 1. 添加第三方库Glide及其依赖。 2. 配置AndroidManifest.xml以允许网络访问。 3. 使用Glide的API加载图片到ImageView。 4. 可选地,...
4. 占位符与错误图:在图片加载过程中,显示占位符,加载失败时显示错误图片,提供更好的用户体验。 5. 懒加载:只在列表项可见时加载图片,不在屏幕范围内的图片延迟加载,节省资源。 6. 加载策略:根据ListView的...