如何将字符串从资源获取到我的虚拟数据源作为可变列表

问题描述 投票:0回答:2

我很困惑如何将字符串从资源加载到可变列表,因为我想在我的项目上进行本地化

interface DummyMateriDataSource {
    fun getMateriData(): List<Materi>
}

class DummyMateriDataSourceImpl() : DummyMateriDataSource {
    override fun getMateriData(): List<Materi> {
        return mutableListOf(
            Materi(
                imgUrl = "https://raw.githubusercontent.com/ryhanhxx/img_asset/main/img_kalkulator.webp",
                title = "Lorem",
                heading = "",
                desc = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ",
                subHeading = "",
                subDesc = "",
                source = ""
            ),
         )
    }
}

我想像这样从我的资源字符串加载,但不知道如何,它仍然是错误,请帮助大家嘿嘿。

interface DummyMateriDataSource {
    fun getMateriData(): List<Materi>
}

class DummyMateriDataSourceImpl() : DummyMateriDataSource {
    override fun getMateriData(): List<Materi> {
        return mutableListOf(
            Materi(
                imgUrl = "https://raw.githubusercontent.com/ryhanhxx/img_asset/main/img_kalkulator.webp",
                title = getString(R.string.txt_materi),
                heading = getString(R.string.txt_materi),
                desc = getString(R.string.txt_materi),
                subHeading = getString(R.string.txt_materi),
                subDesc = getString(R.string.txt_materi),
                source = getString(R.string.txt_materi)
            ),
         )
    
android string kotlin mobile frontend
2个回答
0
投票

你的呵呵让我来这里试试这个

 interface DummyMateriDataSource {
        fun getMateriData(context: Context): List<Materi>
    }

class DummyMateriDataSourceImpl : DummyMateriDataSource {
    override fun getMateriData(context: Context): List<Materi> {
        val title = context.getString(R.string.txt_materi)
        return mutableListOf(
            Materi(
                imgUrl = "https://raw.githubusercontent.com/ryhanhxx/img_asset/main/img_kalkulator.webp",
                title = title,
                heading = title,
                desc = title,
                subHeading = title,
                subDesc = title,
                source = title
            )
        )
    }
}

然后当你调用 getMateriData() 时,请确保传递上下文:

val dataSource = DummyMateriDataSourceImpl()
val materiList = dataSource.getMateriData(context)

将上下文替换为调用此方法的实际上下文,例如活动或片段上下文。确保在必要时导入 android.content.Context。


0
投票

在这里你必须借助资源来做到这一点,因为它是你资源的一部分 你必须这样写

resources.getString(R.string.txt_materi),

如果您在 adater 中,则必须通过提供上下文来获取字符串,这样它的工作方式就像 context.resources.getString(R.string.yourstring)

© www.soinside.com 2019 - 2024. All rights reserved.