【问题标题】:String-array in KotlinKotlin 中的字符串数组
【发布时间】:2018-07-30 15:21:47
【问题描述】:

在 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

我不明白,我做错了什么。

【问题讨论】:

    标签: android arrays string kotlin android-resources


    【解决方案1】:

    如果要使用RecyclerView.Adapter类中的资源路径,必须放入函数onBindViewHolder

    val myItem = holder.itemView.resources.getStringArray(R.array.myItem_string_array)
    

    【讨论】:

      【解决方案2】:

      通过这行代码,您可以准确地获得索引位置的元素。

      val the_string = resources.getStringArray(R.array.YOUR_STRING_ARRAY)[index].toString()
      

      这将是您的 res/values/strings.xml

      <string-array name="YOUR_STRING_ARRAY">
          <item>kJ</item>
          <item>kWh</item>
          <item>Btu</item>
          <item>kcal</item>
      </string-array>
      

      例如,如果索引为 1,则返回值为“kWh”

      【讨论】:

        【解决方案3】:

        在 android 中是依赖于 contextoutside 这样的活动

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

        无上下文insideActivity

        时直接指向资源
        val themes = resources.getStringArray(R.array.themeList)
        

        【讨论】:

          【解决方案4】:

          在kotlin中,也需要使用如下的上下文

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

          【讨论】:

            【解决方案5】:

            在 kotlin 中使用:

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

            【讨论】:

              【解决方案6】:

              试试这个,

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

              【讨论】:

                【解决方案7】:

                正如我们所知,res.getStringArray 返回 arraylist,因此您无需在代码上写 arrayOf

                实现目标的简单方法是:-

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

                当我们必须定义我们的数组或者我们已经有如下的arraylist时,我们可以使用arrayOf:-

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

                【讨论】:

                  【解决方案8】:

                  替换

                  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
                  

                  【讨论】:

                    猜你喜欢
                    • 2018-05-03
                    • 1970-01-01
                    • 1970-01-01
                    • 2019-05-13
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-11-29
                    • 1970-01-01
                    相关资源
                    最近更新 更多