java - 为什么反转 strings.xml 中字符串数组中的声明顺序会发生变化?

标签 java android

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

以及在 Activity 的 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 文件中声明两个数组的顺序即可反转数组放置到哪个微调器中。这对我来说毫无意义,因为一切都是通过名称引用的。有什么想法吗?

最佳答案

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

关于java - 为什么反转 strings.xml 中字符串数组中的声明顺序会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14289279/

相关文章:

java - 在 Datastore Google App 引擎的 endpint 类中使用正则表达式或模式匹配

java - 露天工作流程分配不起作用

android - 如何获取android系统默认家庭应用程序的名称

android - OkHttp + Retrofit libssl 在两种方式的 SSL 身份验证中崩溃

android - (Robotium) 操作栏向上/主页按钮单击

java - 当我运行 "SELECT 0 AS COL .."时,MySQL 列类型返回 decimal 或 bigint

java - 默认目录必须是绝对目录

java - 从 SolrDocument 转换为类

java - 跟踪 fragment 生命周期,如 Application.ActivityLifecycleCallbacks

java - Android:让应用程序使用共享首选项提醒答案