在未使用string-array方法之前,我打算把Strings.xml资源文件的字符串以List一个个的Add进来,再把List拿去用。
这样一来,代码中就会有一段段的String资源文件,怎么看怎么不顺眼,要是敢把这样的代码提交,肯定会被骂的。
private void setSortOrder() {
mSortList = new ArrayList<>();
mSortList.add(this.getString(R.string.1));
mSortList.add(this.getString(R.string.2));
mSortList.add(this.getString(R.string.3));
mSortList.add(this.getString(R.string.4));
mSortList.add(this.getString(R.string.5));
mSortList.add(this.getString(R.string.6));
}
为了解决这个问题,我特意去看看项目中是否存在类似的代码,于是我就发现了他们都会把String写在string-array,这个方法在我刚学的时候就接触过,为什么我会忘记了呢?好吧,我就重新修改了我的代码:
<string-array name="file_project_mothod_array">
<item>@string/1</item>
<item>@string/2</item>
<item>@string/3</item>
<item>@string/4</item>
<item>@string/5</item>
<item>@string/6</item>
</string-array>
private String[] mSortMothodArray;
// 获取Array数组
mSortMothodArray = getResources()
.getStringArray(R.array.file_project_mothod_array);
mBtnSort.setText(mSortMothodArray[mSelectSortIndex]);
需要注意的是,不同的模块的Arrays.xml是不一样的,当时我还在为这个问题纠结了一下。
网友评论