XMLでデータを管理 | Data management with XML | Android

スポンサーリンク
スポンサーリンク

XMLでデータ管理

通常、配列データを以下のように記述します。

 private String[] stringDataArray= {
             "Data_1"
            ,"Data_2"
            ,"Data_3"
            ,"Data_4"
            ,"Data_5"
            ,"Data_6"
            ,"Data_7"
};

これはこれで間違っていませんし、正しいのですが、
メンテナンスが面倒です。
もしこのデータをXMLでコードとは別に扱うことが
メンテナンスも楽ですし、作業を分担することもできます。
では、その方法です。
こんな具合のXMLを用意します。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="data">
        <item>Data_1</item>
        <item>Data_2</item>
        <item>Data_3</item>
        <item>Data_4</item>
        <item>Data_5</item>
        <item>Data_6</item>
        <item>Data_7</item>
    </string-array>
</resources>

このXMLを data.xmlなどのファイル名にして、values内に保存します。
アクセスする際はのname、ここでは”data”を使うためファイル名は何でも構いません

XMLデータにアクセス

ではこのXMLにアクセスしてみましょう。
データはString配列で取得します。

String[] stringDataArray= getResources().getStringArray(R.array.data);

とまぁ、これだけです。Javaのコード上で定義するよりずいぶん楽です。
R.array.dataとなります。ご注意を。

あとはそのままです。

XMLデータの文字

Android開発におけるXMLデータではいくつかの文字については多少変更して記述する必要があります。

簡単に紹介しますと

&  >> &#x26;
'  >>  \'

などで、改行は\nです。

サンプルコード

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String[] stringDataArray= getResources().getStringArray(R.array.data);
        for(int i=0;i&amp;lt;stringDataArray.length;i++) {
            Log.d("Log0", stringDataArray[i]);
        }

    }
}

XMLは

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="data">
        <item>Data_1</item>
        <item>Data_2</item>
        <item>Data_3</item>
        <item>Data_4</item>
        <item>Data_5</item>
        <item>Data_6</item>
        <item>Data_7</item>
    </string-array>
</resources>

結果は

D/Log0: Data_1
D/Log0: Data_2
D/Log0: Data_3
D/Log0: Data_4
D/Log0: Data_5
D/Log0: Data_6
D/Log0: Data_7