2

我的数组在我的 strings.xml 文件中声明如下:

<string-array name="metal_array">
    <item >Copper</item>
    <item >Aluminum</item>
</string-array>
 <string-array name="temperature_array">
    <item >60C&#x00B0;, 140F&#x00B0;</item>
    <item >75C&#x00B0;, 167F&#x00B0;</item>
    <item >90C&#x00B0;, 194F&#x00B0;</item>
</string-array>

以及在活动的 onCreate() 方法中添加的适配器:

    Spinner metalSpinner = (Spinner) findViewById(R.id.metal_spinner);
    ArrayAdapter<CharSequence> metalAdapter = ArrayAdapter.createFromResource(this, R.array.metal_array, android.R.layout.simple_spinner_item);
    metalAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    metalSpinner.setAdapter(metalAdapter);

    Spinner temperatureSpinner = (Spinner) findViewById(R.id.temperature_spinner);
    ArrayAdapter<CharSequence> temperatureAdapter = ArrayAdapter.createFromResource(this, R.array.temperature_array, android.R.layout.simple_spinner_item);
    temperatureAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    temperatureSpinner.setAdapter(temperatureAdapter);

无需对activity.xml 文件进行任何更改,只需切换在strings.xml 文件中声明两个数组的顺序即可反转该数组放置到哪个微调器中。这对我来说毫无意义,因为一切都是按名称引用的。有什么想法吗?

4

1 回答 1

3

数组 XML 被编译成类文件,其中它们的名称变成基于整数的 ID。当您更改顺序时,它们会重新编译并且元素会获得新的 ID。对你来说,任何使用旧 ID 的类文件都会以有趣的方式表现。

于 2013-01-12T01:38:17.047 回答