2016-11-29 6 views
0

Javaで4つの文字列属性を持つNumberというカスタムオブジェクトがあります。例えば、私はXMLリソースファイルでこれらのオブジェクトを格納したいAndroid - カスタムオブジェクトをXMLリソースファイルに保存する

Number[] numbersArray = { 
    new Number("attr 1","attr 2","attr 3","attr 4"); 
}; 

を:: さて、そのオブジェクトの配列を作成するために、私はそうのようなJavaでそれを記述する必要が

<number-array> 
    <number> 
     <string>attr 1</string> 
     <string>attr 2</string> 
     <string>attr 3</string> 
     <string>attr 4</string> 
    </number> 
</number-array> 

ですそうする方法はありますか?基本的には、このXMLリソースファイルを使用してnumbersArrayをJavaファイルに取り込みます。返信を待っています。マニュアルに記載されているあなたがこれを行うことができます

+0

strings.xmlファイルを使用してカスタムオブジェクトを保存する – Bhavnik

+0

質問に記載されているオブジェクトを保存すると、Javaコードでどのようにアクセスできますか? – Asym

答えて

1
+0

これを使用するには、各属性に異なる配列を使用する必要があります。私は質問に書いたものと似たものが欲しい。 – Asym

+0

さて、それを持っています。私が考えることができる唯一のことは、定義済みの文字列を配列として解析することです。 –

+0

XML: ' attr 1; attr 2; attr 3'次に、 'res.getStringArray(R.array.number_array).split("; ");' –

0

は、以下のようにあなたのstrings.xmlにそれらのオブジェクトを挿入します -

<integer-array name="studentIds"> // here you can defile string-array also 
    <item>1</item> 
    <item>2</item> 
    <item>3</item> 
    <item>4</item> 
    <item>5</item> 
    <item>6</item> 
    <item>7</item> 
    <item>8</item> 
    <item>9</item> 
    <item>10</item> 
</integer-array> 

は、以下の行を使用してこれらのオブジェクトを取得するようになりました: -

getResources().getIntArray(R.array.studentIds); 
getResources().getStringArray(R.array.studentIds); 
+0

新しい番号(" attr 1 "、" attr 2 " "、" attr 3 "、" attr 4 "); XMLの形で。 このメソッドを使用すると、{"attr 1"、 "attr 2"、 "attr 3"、 "attr 4"}を含むString []が返されます。 – Asym

+0

ええと、XMLファイルで文字列配列を定義することができたと言いました。この配列を取得すると、次の行を使ってstring []を返します: - getResources()。getStringArray(R.array.studentIds); – Bhavnik

+0

私は配列が欲しいわけではありません。 XMLを使ってNumberオブジェクトを初期化したい。 – Asym

-1

res/valuesフォルダ内のstrings.xmlファイルに文字列変数を定義します。

<resources> 
    <string name="numbers">attr 1,attr 2,attr 3,attr 4</string> 
</resources> 

あなたのアクティビティでStringを取得し、Number []配列を初期化します。

String values[] = getString(R.string.numbers).split(","); 
Number[] numbers = new Number[values.length]; 

for(int i=0; i< values.length; i++){ 

    numbers[i] = new Number(values[i]); 
} 

希望すると便利です。

関連する問題