2016-08-16 27 views
2

私はstring-arrayからデータを取得する方法を知っています。私はこのようにした。リソースからアンドロイド文字列配列からデータを取得

<string-array name="values"> 
    <item>value1</item> 
    <item>value2</item> 
</string-array> 

String[] values = this.getResources().getStringArray(R.array.values); 

しかし、私は、以下のタイプstring-arrayはそこから値を取得することも可能と混乱しているかどうか知りません。

<string-array name="country_data"> 
     <item> 
      <country>Afghanistan</country> 
      <countryCode>93</countryCode> 
      <iso2>AF</iso2> 
      <iso3>AFG</iso3> 
     </item> 
    </string-array> 

可能であれば、値を取得する手助けをしてください。

答えて

2

私はそれではない、以下の文字列型アレイは

可能であるかどうか知りません。

任意のXMLを使用する場合は、好きなXML構造にはres/xml/を使用します。 getResources().getXml()を使用して、そのXMLを解析するために使用できるXmlPullParserを取得できます。

または、<item>各要素の内容をCDATAにラップすると、リソースパーサーがそれらを混乱させないようにする必要があります。次に、配列から取得する各文字列は、単純なXMLであり、解析する必要があります。

または、お気に入りのJSONパーサー(Gsonなど)を使用してres/raw/またはassets/のJSONを使用してください。

またはuse SQLiteAssetHelperこのデータがあらかじめロードされているアプリケーションにデータベースをパッケージ化するには、

または、オブジェクトごとに<string-array>、オブジェクトの各フィールドに<item>の要素を持つR. Zagórski's solutionを使用します。

+0

私はXmlPullParserを使用することをお勧めします。 –

0

もちろん可能です。要約すると

  1. は、カスタムXMLエントリを使用することはできませんことを覚えておいてください。このPOJO

にリソースからの配列の文字列配列をインポートする機能を作成します

  • あなたのモデルを表すPOJOを定義します彼らは<item>でなければなりません。そしてあなたはそれが前向きであることを知る必要があります。

  • 1

    のxml:

    <string-array name="_name"> 
         <item>n11</item> 
         <item>n12</item> 
         <item>n13</item> 
         <item>n14</item> 
         <item>n15</item> 
         <item>n16</item> 
        </string-array> 
    

    は、Javaクラスで取得します。

    String[] test; 
    test = getResources().getStringArray(R.array._name); 
    
    関連する問題