`
1028826685
  • 浏览: 940597 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

修改Android中strings.xml文件, 动态改变数据

 
阅读更多
有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法。
strings.xml中节点是支持占位符的,如下所示:

<string name="data">整数型:%1$d,浮点型:%2$.2f,字符串:%3$s</string>其中%后面是占位符的位置,从1开始,

          $ 后面是填充数据的类型
         %d:表示整数型;
         %f :表示浮点型,其中f前面的.2 表示小数的位数
         %c:表示字符串
这些和C语言中输入输出函数的占位符很相似

在程序中我们可以通过下面的代码对字符串进行格式化,也就是填充占位符中的内容:

String data = getResources().getString(R.string.data); data = String.format(data, 100, 10.3, "2011-07-01");最后运行结果如下:









http://www.cnblogs.com/coolszy/archive/2011/07/01/2095545.html





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

01.<?xml version="1.0" encoding="utf-8"?>
02.<resources>
03.    <string name="app_name">cwj_Demo</string>
04.    <string name="hello">android开发网</string>
05.</resources>
复制代码上面是一段简单的字符串资源文件,没有用到格式化,因为比较简单直接描述了意思,当我们设计一个类似 Delete xxx File ? 的时候,我们可能需要在Java中动态获取 xxx 的名称,所以定义资源时使用格式化可以轻松解决,不需要一堆String去拼接或StringBuffer一个一个append这样的愚蠢方法,看例子
01.<string name="alert">Delete %1$s File</string>
复制代码这里%1$s代表这是一个字符串型的,如果是整数型可以写为%1$d,类似printf这样的格式化字符串函数,当然如果包含了多个需要格式化的内容,则第二个可以写为%2$s或%2$d了,那么最终在Java中如何调用呢? 看下面的例子:

例一: 整数型的
01.<string name="alert">I am %1$d years old</string>
复制代码定义的是这样的

当然,我们杜绝意外情况,比如冒出个secret这样的string类型的,注意上面是%1$d不是%1$s,所以默认标准的合并成为
01.int nAge=23;
02.String sAgeFormat = getResources().getString(R.string.alert);
03.String sFinalAge = String.format(sAgeFormat, nAge);
复制代码这样执行完后,就组成了 I am 23 years old,是不是很方便啊.  当然了,下面看下String字符串时的情况.

例二: 字符串型的
01.String sName="cwj"
02.String sCity="Shanghai"
复制代码资源定义为
01.<string name="alert2">My name is %1$s , I am form %2$s</string>
复制代码则Java中只需要
01.String sInfoFormat = getResources().getString(R.string.alert2);
02.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


转载:http://blog.csdn.net/simayilong/article/details/6680396
[align=center][/align]
分享到:
评论

相关推荐

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

    - 在 Android 应用开发中,`res/values/strings.xml` 文件用于定义应用的字符串资源。这样做可以将字符串与代码分离,便于翻译成不同语言,同时方便后期修改和维护。 2. **格式化符号**: - `%1$s`:这是一个...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android资源文件[转].doc

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

    android APP 多语言切换

    在每个`strings.xml`文件中,定义应用中需要用到的所有字符串,例如: ```xml &lt;!-- values-en-rUS/strings.xml --&gt; &lt;string name="app_name"&gt;My Application &lt;string name="hello_world"&gt;Hello world! &lt;!...

    Android中英文切换

    - 在每个`strings.xml`文件中,定义应用中所有需要本地化的文本。例如: ```xml &lt;!-- values/strings.xml (English) --&gt; &lt;string name="app_name"&gt;My App &lt;string name="welcome_message"&gt;Welcome to My App!...

    Android 抖动窗口.zip项目安卓应用源码下载

    抖动效果的实现可能涉及到对布局中元素的位置动态修改。例如,开发者可能创建了一个`&lt;FrameLayout&gt;`或`&lt;RelativeLayout&gt;`,并在其中嵌套了需要抖动的视图,然后在Java代码中通过`LayoutParams`来动态调整视图的位置...

    android4.0 settings 设置 模块 源代码

    虽然源代码主要关注逻辑部分,但也会包含一些关于布局和样式的XML文件(如`res/layout/*.xml`),定义了设置界面的视觉呈现。 10. **编译与构建** 在`classes.jar`中包含了编译后的Java类文件,而源代码的构建...

    Android spinner 案例

    首先,我们需要在`strings.xml`中定义城市选项,然后在布局文件中添加Spinner,接着在Activity中初始化Spinner并设置监听器: ```xml &lt;!-- strings.xml --&gt; 北京 上海 广州 深圳 &lt;!-- layout.xml --&gt; ...

    Android4.4 settings源码

    在 Android 4.4 中,首选项框架(Preference Framework)是设置界面的基础,它允许开发者使用 XML 文件定义 UI 元素,并在代码中处理用户交互。`android.preference` 包含了各种偏好类,如 `CheckBoxPreference`、`...

    android studio开发app项目Spinner应用设计

    这可以通过在`res/layout`目录下的XML文件中插入`&lt;Spinner&gt;`标签完成。例如: ```xml android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" /&gt; ``` 3. **...

    Google Android SDK开发范例大全(完整版)

    在 strings.xml 文件中,可以看到 all_white 被定义为一个值为 #FFFFFF 的 RGB 三元组,即纯白。 布局包含一个 TextView,这实际上是一块静态文本。它是不可编辑的。文本被设为黑色,并通过 gravity 属性设为水平...

    sanxing.zip_android_通讯录

    - `res/layout`目录下的XML文件可能包含`contact_list.xml`(联系人列表视图)、`contact_detail.xml`(联系人详细信息视图)等,描述了UI的层次结构。 - `res/drawable`可能包含各种图标,如联系人头像的占位符、...

    Android中下拉框Spiner

    例如,可以在`strings.xml`中定义一个字符串数组,然后在代码中创建`ArrayAdapter`: ```xml &lt;!-- strings.xml --&gt; &lt;item&gt;Option 1 &lt;item&gt;Option 2 &lt;item&gt;Option 3 ``` ```java // Java代码 String[] ...

    应用源码之res.zip

    3. **字符串资源(strings)**:在res/values/strings.xml文件中,开发者会定义应用中的文本字符串,这样可以方便地进行多语言支持和统一管理。 4. **颜色资源(colors)**:同样在res/values目录下,colors.xml...

    android开发及应用课程可用.pdf

    - 使用Android Studio的布局编辑器在`activity_main.xml`中设计用户界面,遵循给定的布局要求,不改变默认布局。 - 添加并配置UI元素,如TextView和EditText,设置ID、文本内容、颜色和字体大小。例如,设置...

    Android 银行按揭贷款基本计算功能源码-IT计算机-毕业设计.zip

    4. **数据绑定与事件监听**:在布局文件中,可以使用数据绑定库将UI元素与Java代码中的变量关联起来,以便在用户输入改变时自动更新数据。同时,事件监听器如`OnClickListener`用于捕获用户点击按钮的动作,触发计算...

    Android应用源码之Settings.zip

    Settings应用需要支持多种语言和区域,源码会包含多语言资源文件,如strings.xml,以及如何根据用户设备的地区设置加载相应的资源。 8. **UI设计与响应** Settings应用的UI设计遵循Material Design指南,源码中会...

    Android目录结构和程序的执行流程

    1. **启动过程**:当用户点击应用图标或者系统启动应用时,会先加载AndroidManifest.xml文件,解析出应用的主Activity。 2. **加载资源**:在应用启动时,Android系统会编译res目录下的资源,生成R类,使得我们可以...

    弹出框Spinner

    - 在布局XML文件中添加Spinner元素,如`&lt;Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" /&gt;` - 创建一个数组资源,用于存放Spinner的选项,例如在...

    联想Android开发工程师面试题

    - 在XML布局文件中直接引用资源,例如`&lt;TextView android:text="@string/hello" /&gt;`。 4. **资源的加载机制**:当程序运行时,Android系统会根据设备的当前设置来决定加载哪个资源文件。这些设置包括但不限于: -...

Global site tag (gtag.js) - Google Analytics