用Android Studio(以下简称AS)编写安卓程序,虽然有实时的页面布局显示,自动代码填充等功能,减去不少麻烦。但也有不少奇怪的坑,让编程者饱尝一锄锄挖土的艰辛。
坑1: 不能批量提取字符串到string.xml中
根据谷歌的编程建议,AS项目下的xml布局文件中,控件显示的字符串不应该直接写字符串,而应该在string.xml文件中单独写字符串值,以方便转化为多语言的版本。
比如在MainActivity.xml文件中, 有个TextView含代码android:text="up", 这种写法是字符串的硬代码
谷歌建议在这改为android:text="@string/up",然后在res/String.xml中,添加
<string name="up">up</string>
很繁琐的过程。
在代码android:text="up"中,如果选中up,按Alt+Enter,有Extract String... /提取字符串的选项,可以在String.xml中直接生成赋值代码,并且刚才的代码变为android:text="@string/up"。但是,字符串也只能一个一个提取,并且,
- 如果在MainActivity.xml文件中直接写android:text="up",则无法直接提取字符串
- 如果重复提取了字符串,在String.xml中会生成多行的重复代码,编辑器报错,但不能搜索并删除无用代码
这个坑,在国内外的网站都搜索过,几乎所有的答案都止步于单个提取的Alt+Enter. 极少数另外编了脚本软件来简化这项工作,但也没有成熟的工具。 AS中既然能定位所有字符串位置,又能迅速地单个提取字符串,无法批量提取的功能缺失很奇怪。难道是隐藏的VIP功能,用于分化谷歌自身的程序员与其他开发者的编程效率?
坑2: 无法批量添加图片到res/resource中
从搜索结果看,大家都是crtl+c复制图片,再ctrl+v粘贴到res/resource文件夹中,再逐一命名。如果有100张图片,这个过程不得累死人?