`
yezhiqiu-love
  • 浏览: 168669 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android xml中应用占位符

阅读更多

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&apos;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:

  1. Store your styled text resource as an HTML-escaped string:
    <resources>
    
      
    <string
     
    name
    =
    "welcome_messages"
    >
    Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.
    </string>
    
    
    </resources>
    

    In this formatted string, a <b> element is added. Notice that the opening bracket is HTML-escaped, using the &lt; notation.

  2. 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内容预加载View占位

    本知识点主要探讨的是如何在数据加载完成之前,通过占位符显示预计内容区域,以提升应用的流畅性和响应速度。 首先,"预加载"是指在用户实际查看内容之前,提前加载部分或全部数据。这在移动设备上尤其重要,因为...

    基于android布局中的常用占位符介绍

    本文将深入探讨Android布局中常用的占位符及其用法。 首先,我们要了解Android布局中的基本元素,如LinearLayout、RelativeLayout、ConstraintLayout等。这些布局容器允许开发者组织和定位应用的UI组件。在这些布局...

    占位符行为源码

    在Android中,占位符对应的是`EditText`控件的`hint`属性。在XML布局文件中,我们这样设置: ```xml android:id="@+id/email" android:hint="请输入您的电子邮件地址" /&gt; ``` 在Java代码中,我们可以这样修改`...

    Android 对 strings.xml 的字符串进行格式化

    这里`getString(R.string.my_text)`获取到了`strings.xml`中定义的字符串资源,然后使用`String.format()`方法对其中的占位符进行了替换,最终得到格式化的字符串。 ### 三、进阶技巧与注意事项 #### 3.1 多个占位...

    android和java解析XML中内容代码

    在实际应用中,你需要根据XML文件的具体结构,调整这些示例代码中的“node_name”等占位符。同时,为了提高性能和节省内存,对于大型XML文件,建议使用SAX或PullParser解析。 总结,Android和Java解析XML文件时,...

    Android string拼接

    1. **占位符格式**:确保在`strings.xml`文件中定义的占位符格式与Java代码中提供的参数类型匹配。 2. **资源引用**:正确引用资源ID,如`R.string.alert`,避免因为错误的资源ID导致的异常。 3. **国际化支持**:在...

    android的strings.xml示例代码

    在Android开发中,`strings.xml`文件是管理应用中所有文本资源的核心文件。它使得开发者可以集中处理字符串,便于国际化和本地化,同时也方便代码维护。在这个`StringDemo`示例中,我们将深入探讨如何使用`strings....

    通过占坑位启动未在AndroidManifest.xml注册的Activity

    在Android应用开发中,通常每个Activity都需要在AndroidManifest.xml文件中进行注册,以便系统能够知道它们的存在并管理它们的生命周期。然而,在某些特殊情况下,开发者可能会选择不将某个Activity注册在清单文件中...

    Android 使用模板生成Word文档的demo,最新版在Android studio中运行

    在“Android使用模板生成Word文档的demo”中,开发者可能会创建一个模板文件,其中包含占位符,这些占位符将在运行时被实际数据替换。这可以简化文档生成过程,因为只需要维护一个结构化的模板,而不是为每个新文档...

    Android中使用XML文件定义字符串.pdf

    通过在`&lt;string&gt;`标签内使用占位符,可以插入变量或者动态数据。例如: ```xml 你好,%1$s!今天是%2$s。 ``` 在Java代码中,可以这样使用: ```java String user = "小明"; String date = "2023年4月1日"; ...

    Android string.xml中的替换方法

    在Android应用开发中,资源管理是非常重要的一部分,其中string.xml文件用于存储应用程序中使用的文本字符串。这不仅方便了代码的维护,还支持多语言环境。本文将深入探讨Android string.xml中的替换方法,以及如何...

    androidstudio自动生成国际语言的插件

    - 使用变量和占位符,例如`&lt;string name="welcome_message"&gt;Hello, %s!&lt;/string&gt;`,在运行时动态填充内容。 - 使用Android Studio的Translation Editor,可以直观对比不同语言的字符串,检查一致性。 6. **国际化...

    Android应用源码利用poi将内容填到word模板.zip

    3. **填充数据**:将从Android应用中获取的数据(例如,从数据库、网络请求或其他数据源)填充到找到的占位符中。 4. **保存或导出结果**:完成填充后,更新Word文档并保存为新的文件。在Android应用中,这可能涉及...

    xml 汉化 Android

    3. 可变字符串:对于包含变量的字符串,如“欢迎,%s”,需要保留占位符,并确保在代码中正确传递参数。 五、注意事项 1. 保持ID不变:翻译时,必须保留原有的字符串ID,因为这些ID在代码中被引用。 2. 文本长度:...

    Android Http简单应用源码.rar

    在Android开发中,常见的图片加载库有Glide、Picasso和Fresco,它们可以帮助我们优化图片加载性能,避免内存溢出,并支持占位符和错误图。 7. **读取Markdown文件(readme.md)**: 这个文件可能是项目的说明文档...

    android string.xml %1$s %d\%的用法

    在Android开发中,`string.xml` 文件是应用中管理字符串资源的重要部分,它允许开发者集中存储和管理应用程序中的文本内容,提高代码可读性和维护性。`%1$s` 和 `%d\%` 是在 `string.xml` 文件中常用的格式化符号,...

    Android应用源码利用poi将内容填到word模板源码.zip

    3. **替换占位符**:找到占位符后,用程序中的数据替换它们。这可能涉及到字符串匹配和替换操作。 4. **写入新内容**:将替换后的数据写回到文档,使用XWPFRun类添加新的文本,或者更新现有的XWPFRun对象。 5. **...

    Android 使用模板生成Word文档,支持手机直接查看word

    4. **替换占位符**:在`placeholders`参数中,键是模板文件中的占位符,值是替换后的实际文本。例如,`{"name": "张三", "address": "北京市朝阳区"}`。 5. **保存和查看文档**:生成的Word文档可以保存到设备的...

    android安卓通过url获取网络图片并显示在imageview中

    总结,通过URL获取网络图片并在Android应用中显示,主要涉及以下几个知识点: 1. 添加第三方库Glide及其依赖。 2. 配置AndroidManifest.xml以允许网络访问。 3. 使用Glide的API加载图片到ImageView。 4. 可选地,...

    android应用开机动画,图片的异步加载

    4. 占位符与错误图:在图片加载过程中,显示占位符,加载失败时显示错误图片,提供更好的用户体验。 5. 懒加载:只在列表项可见时加载图片,不在屏幕范围内的图片延迟加载,节省资源。 6. 加载策略:根据ListView的...

Global site tag (gtag.js) - Google Analytics