如何从sttrings.xml项目列表中读取ViewModel数据

时间:2019-08-16 13:52:31

标签: android string kotlin

我正在尝试构建一个recyclerview应用程序,该应用程序从strings.xml文件中获取数据。

In the below code I hardcoded the name1 & name2, where I would like to get the content of name1 & name2 from the strings.xml file


    val name1 = listOf<String>("lkjlkjlk","jkljlkjl","jlkjlkjl","jlkjlkj","jlkjlkj")
    val name2 = listOf<String>("iuoiuoi","jkljlkjl","jlkjlkjl","jlkjlkj","jlkjlkj")

Please guide me in getting the name1 & name2 from the strings.xml file

2 个答案:

答案 0 :(得分:0)

您可以在strings.xml

中定义字符串数组。
<string-array name="arr_fruits">
    <item>Apple</item>
    <item>Mango</item>
</string-array>

Activity

中获取此数组
val fruits = resources.getStringArray(R.array.arr_fruits)

答案 1 :(得分:0)

使用 resources.getStringArray 函数在strings.xml资源中提供一个字符串数组,以检索值。示例(请注意,MainActivity作为参数提供,以提供对资源的访问):

package ...
import ...

class RecyclerNameAdapter (private val mainActivity: MainActivity): RecyclerView.Adapter<ListItemHolder>() {

    val Name1Content: Array<String> = mainActivity.resources.getStringArray(R.array.name1)
    val Name2Content: Array<String> = mainActivity.resources.getStringArray(R.array.name2)

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ListItemHolder {
        val itemView = LayoutInflater.from(parent.context)
            .inflate(R.layout.recycler_name_layout, parent, false)
        return ListItemHolder(itemView)
    }

    override fun getItemCount(): Int {
        return   Name1Content.size         
    }

    override fun onBindViewHolder(holder: ListItemHolder, position: Int) {
        holder.view.txtName1.text = Name1Content[position]
        holder.view.txtName2.text = Name2Content[position]
        }
   }
}

class ListItemHolder (val view: View): RecyclerView.ViewHolder(view) {
        init {
            view.isClickable = false
        }
}

希望这会有所帮助。

相关问题