zoukankan      html  css  js  c++  java
  • android strings: %s、%1$s、%d、%1$d占位符

    实际开发的过程中我们有时候会遇到,一个TextView里面会遇到会有一个一大串固定的文字,而里面的数字或者个别字需要根据后台的接口而展示的。这个时候我们最简单的方法就是在string.xml文件里 使用 %s、%1$s、%d、%1$d,而在页面展示的时候我们只需要用实际展示的文字或者数据替换掉这些占位符就可以了。

    %1$s表示把第一个位置的占位符替换成string类型

    %1$d表示把第一个位置的占位符替换成int类型

    数字表示替换字符串中第几个被替换的位置,若一个字符串要替换两个int类型,在替换位置分别写%1$d和%2$d.

    %s 、%d为缩写方式,只替换一个位置,可以这么写。

    例1: %s

    strings.xml

    <string name="strings1">My name is %s</string>

    代码中:

    TextView tv_text = findViewById(R.id.tv_text);
    String text = getString(R.string.strings1, "Tom");
    tv_text.setText(text);
    Log.i(TAG, "text: "+text);

    Log:

    I/StringsApiUseDemoActivity: text: My name is Tom

    例2:%d

    <string name="strings1">My age is %d</string>

    代码中:

    TextView tv_text = findViewById(R.id.tv_text);
    String text = getString(R.string.strings2, 20);
    tv_text.setText(text);
    Log.i(TAG, "text: "+text);

    Log:

    I/StringsApiUseDemoActivity: text: My age is 20

    例3:%1$s

    <string name="strings3">My name is %1$s, you name is %2$s, others name is %3$s</string>

    代码中:

    TextView tv_text = findViewById(R.id.tv_text);
    String text = getString(R.string.strings3, "Tom", "Mike", "John");
    tv_text.setText(text);
    Log.i(TAG, "text: "+text);

    Log:

    I/StringsApiUseDemoActivity: text: My name is Tom, you name is Mike, others name is John

    例4:%1$d

    <string name="strings4">My age is %1$d, you age is %2$d, others age is %3$d</string>

    代码中:

    TextView tv_text = findViewById(R.id.tv_text);
    String text = getString(R.string.strings4, 20, 25, 30);
    tv_text.setText(text);
    Log.i(TAG, "text: "+text);

    Log:

    I/StringsApiUseDemoActivity: text: My age is 20, you age is 25, others age is 30

    参考链接:

    1. %s、%1$s、%d、%1$d占位符

    2. android的string.xml中的%s、%1$s、%d、%1$d的使用

  • 相关阅读:
    CSS hack
    字符串中常用的方法
    排序算法
    拾遗
    数组类型检测
    数组常用的方法
    go 文件服务器(标准库) 添加关机,睡眠,退出功能
    go cmd 交互 初始化执行某些命令
    go 内网IP及外网IP获取
    go 快排实现
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/11798984.html
Copyright © 2011-2022 走看看