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 ファイルで宣言されている 2 つの配列の順序を入れ替えるだけで、配列が配置されるスピナーが逆になります。すべてが名前で参照されるため、これは私には意味がありません。何かご意見は?

4

1 に答える 1

3

配列 XML は、名前が整数ベースの ID に変換されるクラス ファイルにコンパイルされます。順序を変更すると、それらは再コンパイルされ、要素は新しい ID を取得します。結局のところ、古い ID を使用するクラス ファイルは、おかしな動作をすることになります。

于 2013-01-12T01:38:17.047 に答える