`
tansitongba
  • 浏览: 503667 次
文章分类
社区版块
存档分类
最新评论

Android中String资源文件的format方法

 
阅读更多

很多时候我们感性Google在设计Android时遵守了大量MVC架构方式,可以让写公共代码、美工和具体逻辑开发人员独立出来。有关Android的资源文件values/strings.xml中如何实现格式化字符串呢? 这里Android123举个简单的例子,以及最终可能会用到哪些地方。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">cwj_Demo</string>
<string name="hello">android开发网</string>
</resources>

上面是一段简单的字符串资源文件,没有用到格式化,因为比较简单直接描述了意思,当我们设计一个类似 Delete xxx File ? 的时候,我们可能需要在Java中动态获取 xxx 的名称,所以定义资源时使用格式化可以轻松解决,不需要一堆String去拼接或StringBuffer一个一个append这样的愚蠢方法,看例子

<string name="alert">Delete %1$s File</string> 这里%1$s代表这是一个字符串型的,如果是整数型可以写为%1$d,类似printf这样的格式化字符串函数,当然如果包含了多个需要格式化的内容,则第二个可以写为%2$s或%2$d了,那么最终在Java中如何调用呢? 看下面的例子:

例一: 整数型的

<string name="alert">I am %1$d years old</string> 定义的是这样的

当然,我们杜绝意外情况,比如冒出个secret这样的string类型的,注意上面是%1$d不是%1$s,所以默认标准的合并成为

int nAge=23;

String sAgeFormat = getResources().getString(R.string.alert);

String sFinalAge = String.format(sAgeFormat, nAge);

这样执行完后,就组成了 I am 23 years old,是不是很方便啊. 当然了,下面看下String字符串时的情况.

例二: 字符串型的

String sName="cwj"

String sCity="Shanghai"

资源定义为 <string name="alert2">My name is %1$s , I am form %2$s</string>

则Java中只需要

String sInfoFormat = getResources().getString(R.string.alert2);

String sFinalInfo=String.format(sInfoFormat, sName, sCity);

我们看到了整个,整个定义类似MFC的CString::Format或Mac OS中的NSLog,但是需要显示类似C#中那样显示的标出参数的数字,比如%1或%n,这里数字代表参数的第n个。本行最终sFinalInfo显示的内容为

My name is cwj , I am form Shanghai 。

分享到:
评论

相关推荐

    于Android中String资源文件的format

    ### Android中String资源文件的format详解 在Android应用开发过程中,资源文件的高效利用与管理对于提高开发效率、降低维护成本具有重要意义。其中,`strings.xml`文件作为存放字符串资源的重要组成部分,在实际...

    Android string拼接

    1. **资源文件**:在Android中,我们可以将常量文本存储在资源文件中,通常这些资源文件位于项目的`res/values/strings.xml`目录下。 2. **占位符**:在`strings.xml`文件中,可以使用特定格式的占位符来表示需要...

    Android字符串资源文件format方法使用实例

    总结起来,Android字符串资源文件中的format方法允许我们在资源文件中定义格式化字符串,然后在代码中通过`String.format()`方法填充具体的值。这种做法有助于代码的清晰组织,减少拼接操作,并且支持多种类型的格式...

    Android String

    - `getString()`: 从资源文件中获取字符串。 - `getStringArray()`: 获取字符串数组资源。 - `getQuantityString()`: 获取基于数量的字符串资源,用于复数形式。 ### 10. 资源ID转换为字符串 `Resources.getText...

    Android String资源文件插入值实例详解

    在Android开发中,String资源文件是管理应用内文本的重要手段,它允许开发者将所有文本集中管理,便于国际化和本地化。本文将详细讲解如何在Android String资源文件中插入动态值,以及在代码中如何使用这些格式化的...

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

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

    Android string.xml中的替换方法

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

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

    本篇文章将详细阐述如何在Android中使用XML文件来定义字符串资源。 首先,字符串资源通常存储在`res/values`目录下的`strings.xml`文件中。这个文件是一个XML文档,包含了多个字符串元素,每个元素都代表一个独立的...

    一个简单的基于Android读取xls和xlsx文件的例子

    3. **处理结果**:在onActivityResult方法中获取选定文件的Uri,并转换为输入流: ```java Uri selectedFileUri = data.getData(); InputStream inputStream = getContentResolver().openInputStream...

    android webView加载html 并引用本地资源(图片、字体库)

    对于`res`目录下的资源,可以使用`android.resource://[package_name]/[resource_type]/[resource_id]`格式,但通常不推荐这种方法,因为资源会被编译为二进制格式,不适合直接用作URL。 另外,如果需要处理点击...

    Android资源文件[转].doc

    Android资源文件是应用程序开发中不可或缺的部分,它们包含了各种类型的数据,如XML、图像、音频等,这些资源在编译时被打包进应用,并在运行时通过`Resources`类进行访问。资源的使用不仅可以提高代码的可读性和可...

    Android常用Resource使用例子

    TypedArray提供了一种从XML资源文件中一次性获取多个值的方法,常用于自定义View。例如,定义一个属性集: ```xml &lt;attr name="textColor" format="color"/&gt; &lt;attr name="textSize" format="dimension"/&gt; ``...

    android开发教程之framework增加字符串资源和图片等resource资源

    例如,Android提供了`getString()`方法来获取字符串资源,并且可以使用`String.format()`来动态插入值。对于加密解密,可以使用Java的内置加密库,如`Cipher`和`KeyGenerator`。对于TextView的颜色设置,可以使用`...

    Android UI开发专题

    - **`InputStream openRawResource(int id)`**:根据资源ID打开一个原始资源文件的输入流,对应的资源位于`res/raw/`目录下。 - **`void parseBundleExtra(String tagName, AttributeSet attrs, Bundle outBundle)`*...

    Android中通过Exifinterface读取图片地理位置信息

    ExifInterface是Android SDK提供的一种接口,专门用于读取和写入JPEG文件的Exchangeable Image File Format (EXIF)元数据。下面将详细解释如何使用ExifInterface来读取图片的地理位置信息。 首先,了解什么是EXIF...

    【Android开发API】应用程序资源-字符串-StringResources.pdf

    1. **String资源**: - `String`资源是单一的文本字符串,可以在应用程序的各个部分被引用。它们通常存储在`res/values/strings.xml`文件中,通过XML定义。例如,定义一个名为`hello`的字符串: ```xml &lt;string...

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

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

    Android学习笔记(三八):资源resource(上).doc

    在`strings.xml`中,我们还可以使用格式化字符串,例如`&lt;string name="c20_my_name"&gt;My name is %1$s %2$s&lt;/string&gt;`,这里的`%1$s`和`%2$s`是占位符,可以通过`String.format()`方法替换为实际值。例如,`String....

    android字符串格式化

    这里,`getString(R.string.my_text)`获取了`strings.xml`中定义的字符串资源,然后通过`String.format()`方法将其格式化。最终得到的`formattedText`变量将包含完整的文本:“Thanks for visiting oschina. Your ...

Global site tag (gtag.js) - Google Analytics