Weli的Android学习日记 0.4关于String.xml转义与一些零散的代码
2016-11-12 11:34
633 查看
原文:原文已被删除
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/ef58a2217f9e377a8173390a73fb4a40)
下面来介绍如何实现。在String.xml定义
在java代码里实现转换.
其java代码:
“`
如果要写 语文“二”的话,得把%s或者%2s改成%d(%2d),因为 d代表double,s代表string.
%nms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0
%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
也可简单写成:
%d (表示整数)
%f (表示浮点数)
%s (表示字符串)
以下为常见的ASCII十进制交换编码: --> <-- 这边是空格 !-->!<-- "-->"<-- xml中需要在前面加入\ #-->#<-- $-->$<-- %-->%<-- &-->&<-- '-->'<-- (-->(<-- )-->)<-- *-->*<-- +-->+<-- ,-->,<-- --->-<-- .-->.<-- /-->/<-- :-->:<-- ;-->;<-- <--><<-- =-->=<-- >-->><-- ?-->?<-- @-->@<-- [-->[<-- \-->-- ]-->]<-- ^-->^<-- _-->_<-- `-->`<-- {-->{<-- |-->|<-- }-->}<-- ~-->~<-- --> <--这边是空格,在xml首字符中不会被忽略 ¡-->¡<-- ¢-->¢<-- £-->£<-- ¤-->¤<-- ¥-->¥<-- ¦-->¦<-- §-->§<-- ¨-->¨<-- ©-->©<-- ª-->ª<-- «-->«<-- ¬-->¬<-- --><-- ®-->®<-- ¯-->¯<-- °-->°<-- ±-->±<-- ²-->²<-- ³-->³<-- ´-->´<-- µ-->µ<-- ¶-->¶<-- ·-->•<-- ¸-->¸<-- ¹-->¹<-- º-->º<-- »-->»<-- ¼-->¼<-- ½-->½<-- ¾-->¾<-- ¿-->¿<-- À-->À<-- Á-->Á<-- Â-->Â<-- Ã-->Ã<-- Ä-->Ä<-- Å-->Å<-- Æ-->Æ<-- Ç-->Ç<-- È-->È<-- É-->É<-- Ê-->Ê<-- Ë-->Ë<-- Ì-->Ì<-- Í-->Í<-- Î-->Î<-- Ï-->Ï<-- Ð-->Ð<-- Ñ-->Ñ<-- Ò-->Ò<-- Ó-->Ó<-- Ô-->Ô<-- Õ-->Õ<-- Ö-->Ö<-- ×-->×<-- Ø-->Ø<-- Ù-->Ù<-- Ú-->Ú<-- Û-->Û<-- Ü-->Ü<-- Ý-->Ý<-- Þ-->Þ<-- ß-->ß<-- à-->à<-- á-->á<-- â-->â<-- ã-->ã<-- ä-->ä<-- å-->å<-- æ-->æ<-- ç-->ç<-- è-->è<-- é-->é<-- ê-->ê<-- ë-->ë<-- ì-->ì<-- í-->í<-- î-->î<-- ï-->ï<-- ð-->ð<-- ñ-->ñ<-- ò-->ò<-- ó-->ó<-- ô-->ô<-- õ-->õ<-- ö-->ö<-- ÷-->÷<-- ø-->ø<-- ù-->ù<-- ú-->ú<-- û-->û<-- ü-->ü<-- ý-->ý<-- þ-->þ<-- ÿ-->ÿ<-- Ā-->Ā<-- ā-->ā<-- Ă-->Ă<-- ă-->ă<-- Ą-->Ą<-- ą-->ą<-- Ć-->Ć<-- ć-->ć<-- Ĉ-->Ĉ<-- ĉ-->ĉ<-- Ċ-->Ċ<-- ċ-->ċ<-- Č-->Č<-- č-->č<-- Ď-->Ď<-- ď-->ď<-- Đ-->Đ<-- đ-->đ<-- Ē-->Ē<-- ē-->ē<-- Ĕ-->Ĕ<-- ĕ-->ĕ<-- Ė-->Ė<-- ė-->ė<-- Ę-->Ę<-- ę-->ę<-- Ě-->Ě<-- ě-->ě<-- Ĝ-->Ĝ<-- ĝ-->ĝ<-- Ğ-->Ğ<-- ğ-->ğ<-- Ġ-->Ġ<-- ġ-->ġ<-- Ģ-->Ģ<-- ģ-->ģ<-- Ĥ-->Ĥ<-- ĥ-->ĥ<-- Ħ-->Ħ<-- ħ-->ħ<-- Ĩ-->Ĩ<-- ĩ-->ĩ<-- Ī-->Ī<-- ī-->ī<-- Ĭ-->Ĭ<-- ĭ-->ĭ<-- Į-->Į<-- į-->į<-- İ-->İ<-- ı-->ı<-- IJ-->IJ<-- ij-->ij<-- Ĵ-->Ĵ<-- ĵ-->ĵ<-- Ķ-->Ķ<-- ķ-->ķ<-- ĸ-->ĸ<-- Ĺ-->Ĺ<-- ĺ-->ĺ<-- Ļ-->Ļ<-- ļ-->ļ<-- Ľ-->Ľ<-- ľ-->ľ<-- Ŀ-->Ŀ<-- ŀ-->ŀ<-- Ł-->Ł<-- ł-->ł<-- Ń-->Ń<-- ń-->ń<-- Ņ-->Ņ<-- ņ-->ņ<-- Ň-->Ň<-- ň-->ň<-- ʼn-->ʼn<-- Ŋ-->Ŋ<-- ŋ-->ŋ<-- Ō-->Ō<-- ō-->ō<-- Ŏ-->Ŏ<-- ŏ-->ŏ<-- Ő-->Ő<-- ő-->ő<-- Œ-->Œ<-- œ-->œ<-- Ŕ-->Ŕ<-- ŕ-->ŕ<-- Ŗ-->Ŗ<-- ŗ-->ŗ<-- Ř-->Ř<-- ř-->ř<-- Ś-->Ś<-- ś-->ś<-- Ŝ-->Ŝ<-- ŝ-->ŝ<-- Ş-->Ş<-- ş-->ş<-- Š-->Š<-- š-->š<-- Ţ-->Ţ<-- ţ-->ţ<-- Ť-->Ť<-- ť-->ť<-- Ŧ-->Ŧ<-- ŧ-->ŧ<-- Ũ-->Ũ<-- ũ-->ũ<-- Ū-->Ū<-- ū-->ū<-- Ŭ-->Ŭ<-- ŭ-->ŭ<-- Ů-->Ů<-- ů-->ů<-- Ű-->Ű<-- ű-->ű<-- Ų-->Ų<-- ų-->ų<-- Ŵ-->Ŵ<-- ŵ-->ŵ<-- Ŷ-->Ŷ<-- ŷ-->ŷ<-- Ÿ-->Ÿ<-- Ź-->Ź<-- ź-->ź<-- Ż-->Ż<-- ż-->ż<-- Ž-->Ž<-- ž-->ž<--
下面这个感觉很实用,我们经常在一在登录时,会遇到一些固定文字与动态文字的结合例如:【欢迎登录xxx,你本次消费(0.01元),剩余余额(100元),本次获得积分(1分)】.要使用多个TextView相加感觉太麻烦了,在网上找到了解决方法 下面先上个图
下面来介绍如何实现。在String.xml定义
<string name="outgui">请于%1$s%2$s%3$s%4$s%5$s%6$s前去提柜</string>
在java代码里实现转换.
@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_two); TextView tv_time=(TextView) findViewById(R.id.tv_time); String time = "2016"; String text = String.format(getResources().getString(R.string.outgui), time, "年", "12", "月", "12", "日"); int index[] = new int[6]; index[0] = text.indexOf(time); index[1] = text.indexOf("年"); index[2] = text.indexOf("12"); index[3] = text.indexOf("月"); index[4] = text.indexOf("12"); index[5] = text.indexOf("日"); SpannableStringBuilder style = new SpannableStringBuilder(text); style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")), index[0], index[0] + 4, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")), index[1], index[1] + 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")), index[2], index[2] + 3, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")), index[3], index[3] + 2, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")), index[4], index[2] + 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.parseColor("#e50073")), index[5], index[3] + 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); // style.setSpan(new RelativeSizeSpan(2.0f), index[4], index[2] + 5, // Spannable.SPAN_EXCLUSIVE_INCLUSIVE);; tv_time.setText(style); }
第二个是单个动态文本,例如:小姐今年23岁了,我们可以在java代码中动态改变年龄
<string name="old">小姐今年%1$d岁了</string>
其java代码:
String sAgeFormat = getResources().getString(R.string.old); String sFinalAge = String.format(sAgeFormat, 23); tv_time2.setText(sFinalAge);
**第三个是一个多个动态数字文本 例如,今天是星期二,早上10点要开会。要用到 <xliff:g>标签, 首先要导入这个标签,在`<?xml version="1.0" encoding="utf-8"?> 下面写上
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> `
<string name="test_xliff">小姐今年<xliff:g id="xxx">%1d</xliff:g>岁了,上<xliff:g id="yyy">%2s</xliff:g>年级!</string> 或者 <string name="test_xliff">小姐今年<xliff:g id="xxx">%d</xliff:g>岁了,上<xliff:g id="yyy">%s</xliff:g>年级!</string>
下面是java 代码
Resources res = getResources(); String sAgeFormat1 = getResources().getString(R.string.tipnumber); String sFinalAge2 = String.format(sAgeFormat1, 1); tv_time4.setText(sFinalAge2);
“`
如果要写 语文“二”的话,得把%s或者%2s改成%d(%2d),因为 d代表double,s代表string.
%nms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0
%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
也可简单写成:
%d (表示整数)
%f (表示浮点数)
%s (表示字符串)
相关文章推荐
- 20110126 学习记录:一些关于html中布局的代码 & CSS hack速查表
- Android-一些关于代码优化的事儿
- android初学日记——关于一些使用eclipse下载到手机时出现的错误
- Android中关于JNI 的学习(一)对于JNIEnv的一些认识
- [Android学习系列11]关于Android数据存储的一些事
- Android-一些关于代码优化的事儿---摘录
- 关于代码阅读的编程实现技巧及自己工作学习的一些经验(推荐看后面的后记)
- [Android学习系列4]关于Listview和adapter的一些事
- 推荐本人关于Android的一些学习资料
- Android中关于JNI 的学习(二)对于JNI方法名,数据类型和方法签名的一些认识
- 关于代码学习的一些看法
- android学习日记:关于android源码中的壁纸设定程序
- 【Android学习日记】(五) 常用例子代码
- [Android学习系列9]关于Fragment的一些事
- 关于自己的游戏《小鱼吃苹果》 J2ME和android代码提供给大家学习
- 关于android 代码生成布局中遇到的一些问题
- Android学习札记24:收集到的一些关于解决Bitmap OOM内存溢出的方法
- Android学习札记31:收集到的一些关于Handler和Runnable的问题(2)
- [Android学习系列13]关于Gridview的一些事
- [Android学习系列10]关于Task,Activity,BackStack的一些事