You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Kotlin实现从Assets文件随机选行作为Dialog内容

解决方案
  • 实现读取Assets文件并随机返回一行的方法
  • 在Dialog创建时调用该方法获取随机语句

完整代码如下:

class JokeFragment : DialogFragment() {

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        return activity?.let { context ->
            val sentence = getRandomSentence(context)
            val builder = AlertDialog.Builder(context)
            builder.setMessage(sentence)
                .setNegativeButton(R.string.cancel) { _, _ -> }
            builder.create()
        } ?: throw IllegalStateException("Activity cannot be null")
    }

    private fun getRandomSentence(context: Context): String {
        return try {
            // 替换为你Assets文件夹内的目标文件名,比如"jokes.txt"
            val inputStream = context.assets.open("jokes.txt")
            val lines = inputStream.bufferedReader().readLines()
            // 过滤空行后随机选取,无有效内容时返回默认文本
            lines.filter { it.isNotBlank() }.randomOrNull() ?: "暂无内容"
        } catch (e: Exception) {
            // 读取失败时的默认提示
            "加载失败"
        }
    }
}

注意事项

  • 确保目标文件存在于src/main/assets目录下,且文件名与代码中填写的完全一致
  • 若文件内有较多空行,可保留filter { it.isNotBlank() }来过滤无效行
  • 异常处理的默认提示文本可根据需求自行修改

内容的提问来源于stack exchange,提问作者nope

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:55:33