Kotlinで新しいプロジェクトを開始し、それらを取り除きます。
文字列配列リソースを取得しようとしましたが、取得できません。
Strings.xmlで、次のアイテムを配置しました。
<string-array name="themeList">
<item>white</item>
<item>sepia</item>
<item>black</item>
<item>pink</item>
</string-array>
コードで次に試す:
val res: Resources = resources
val appThemeList = arrayOf(res.getStringArray(R.array.themeList))
for (value in appThemeList) {
Log.i ("value", value.toString())
}
しかし、logCatで私は見る:
I/value: [Ljava.lang.String;@40145f2
そして、私は理解していません。
取り替える
val appThemeList = arrayOf(res.getStringArray(R.array.themeList))
に
val appThemeList = res.getStringArray(R.array.themeList)
他の場合では、配列を得ました
val myArray = res.getStringArray(R.array.themeList) //already array
そして別のアレイに追加
arrayOf(myArray) // array of arrays
みなさんご存じのとおり res.getStringArray
return arraylist
なので、コードにarrayOf
を記述する必要はありません。
あなたの目標を達成する簡単な方法は次のとおりです:-
val list = res.getStringArray(R.array.list);
配列を定義する必要がある場合、または以下のようにすでにarraylistがある場合は、arrayOfを使用できます。
val myArray = arrayOf(4, 5, 7, 3);
これを試して、
val Lines = Arrays.asList(resources.getStringArray(R.array.list))
Androidはcontextに依存していますoutsideの場合
val dataArray = context.resources.getStringArray(R.array.themeList)
またはコンテキストなし内部アクティビティの場合、リソースに直接
val dataArray = resources.getStringArray(R.array.themeList)
Kotlinでの使用:
var yourVar = resources.getStringArray(R.array.your_string_array)
Kotlinでは、以下のようなコンテキストも使用する必要があります
var arry = context.resources.getStringArray(R.array.your_string_array)