Java 为什么在strings.xml中颠倒字符串数组中的声明顺序会改变事情?

Java 为什么在strings.xml中颠倒字符串数组中的声明顺序会改变事情?,java,android,Java,Android,我的数组在My strings.xml文件中声明如下: <string-array name="metal_array"> <item >Copper</item> <item >Aluminum</item> </string-array> <string-array name="temperature_array"> <item >60C&#x00B0;, 140

我的数组在My 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>

铜
铝
60C和x00B0;,140F和x00B0;
75C和x00B0;,167F和x00B0;
90C和x00B0;,194F°;
以及在活动的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);
Spinner metalSpinner=(Spinner)findViewById(R.id.metal\u Spinner);
ArrayAdapter metalAdapter=ArrayAdapter.createFromResource(这个,R.array.metal\u数组,android.R.layout.simple\u微调器\u项);
metalAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
metalSpinner.setAdapter(metalAdapter);
微调器温度内部=(微调器)findViewById(R.id.temperature\u微调器);
ArrayAdapter temperatureAdapter=ArrayAdapter.createFromResource(这个,R.array.temperature\u数组,android.R.layout.simple\u微调器\u项);
temperatureAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
TemperaturesInsider.setAdapter(temperatureAdapter);

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

数组XML被编译成类文件,它们的名称被转换成基于整数的ID。当您更改顺序时,它们将被重新编译,元素将获得新ID。对于您来说,任何使用旧ID的类文件都将以有趣的方式运行。

尝试清理项目。