在android项目中,google官方建议我们使用字符串是不要使用硬编码方式(在布局文件或代码中直接书写字符串),而是使用strings.xml
中的资源引用。但在日常开发中,如果我们不需要实现国际化,并且在小公司的话几乎都是怎么方便怎么来吧,我是这个想的O(∩_∩)O
但在实际开发过程中,我们可能会遇到这样的情况,一串多处重复使用的文案,在版本迭代过程中,如果产品经理需要我们统一修改这些文案时,我们就会头疼了。当然你也可以使用全局替换快捷键。其实这类可以抽取到strings.xml
里面,并且如果需要修改我们可以使用占位符,这样到时候只需要修改占位符的文字就可以了。我猜大家看到这里脑袋里浮现的肯定是通过String.format
来实现,这样当然也是一种办法,不过这样的话,我们只能在代码中去实现,如果我们仅仅是需要给一个静态的控件复制(在xml
布局文件中使用)就头疼了,这样实现不了,除非我们项目中使用的是databinding
。下面画重点了哈:
另一种字符串占位符实现方式
我们可以在strings.xml
首行添加如下代码即可实现在xml
中实现占位符的效果
<!DOCTYPE resources [<!ENTITY appname "哈哈">]>
<resources>
<string name="app_name">&appname;应用</string>
</resources>
如果需要抽取多个占位符呢?
<!DOCTYPE resources [
<!ENTITY appname "哈哈">
<!ENTITY author "作者">
]>
<resources>
<string name="app_name">&appname;应用</string>
<string name="app_name">&appname;应用由&author;开发</string>
</resources>
看就是这么简单,我们就可以在布局文件中直接引用了,到时候统一修改占位符里面对应的文案即可(●ˇ∀ˇ●)
网友评论