web-dev-qa-db-ja.com

Kotlinの文字列配列

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

そして、私は理解していません。

8
berliozz

取り替える

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
14
Andrey Danilov

みなさんご存じのとおり res.getStringArray return arraylistなので、コードにarrayOfを記述する必要はありません。

あなたの目標を達成する簡単な方法は次のとおりです:-

val list = res.getStringArray(R.array.list);

配列を定義する必要がある場合、または以下のようにすでにarraylistがある場合は、arrayOfを使用できます。

val myArray = arrayOf(4, 5, 7, 3);
3
duggu

これを試して、

 val Lines = Arrays.asList(resources.getStringArray(R.array.list))
2
MSD

Androidはcontextに依存していますoutsideの場合

val dataArray = context.resources.getStringArray(R.array.themeList)

またはコンテキストなし内部アクティビティの場合、リソースに直接

val dataArray = resources.getStringArray(R.array.themeList)
1
Subhanshuja

Kotlinでの使用:

var yourVar = resources.getStringArray(R.array.your_string_array)
0
MSilva

Kotlinでは、以下のようなコンテキストも使用する必要があります

var arry = context.resources.getStringArray(R.array.your_string_array)
0
Abdul Mateen