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

如何在选中下拉选项时更新link_video变量?现有代码异常

问题修复方案

核心问题分析

  1. 下拉菜单多空选项:初始化episode_number时添加了空字符串,且循环0..total_episode为闭区间(包含total_episode),导致多余循环一次
  2. link_video不更新:使用String.replace()不会修改原变量(Kotlin字符串不可变),且选项匹配逻辑错误(拿选项文本和数组的toString结果对比,永远不相等)
  3. 冗余代码:number数组完全没必要,直接利用选项的position即可对应episode_link的索引

修复后的完整代码

var link_video = "video"
private fun dropdown() {
    val total_episode = 2
    val episode_number = arrayListOf<String>() // 初始化空列表,移除多余空字符串
    val episode_link = arrayListOf(
        "http://download2263.mediafire.com/okgtas0jidsg/txs1m4i2pjv01ay/hasil.mp4",
        "https://www269.ff-01.com/token=yv8LUf_fCoY-MMB_ZIUbfA/1661176164/182.1.0.0/7/5/6b/159f0f122232ece4ff931ed7ba0696b5-480p.mp4"
    )

    // 用左闭右开循环生成恰好total_episode个选项
    for (item in 0 until total_episode) {
        episode_number.add("Episode ${item + 1}")
    }

    val arrayAdapter = ArrayAdapter(this, R.layout.item_form_dropdown, episode_number)
    val episodebox_input = findViewById<AutoCompleteTextView>(R.id.episodebox_input)
    episodebox_input.setAdapter(arrayAdapter)
    
    episodebox_input.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
        override fun onNothingSelected(parent: AdapterView<*>?) {}

        override fun onItemSelected(
            parent: AdapterView<*>?,
            view: View?,
            position: Int,
            id: Long
        ) {
            // 直接通过position索引匹配对应链接,选项顺序与链接顺序完全对应
            link_video = episode_link[position]
        }
    }
}

关键修改说明

  • 移除空初始选项:episode_number初始化为空列表,避免下拉菜单出现多余空项
  • 优化循环范围:用0 until total_episode替代0..total_episode,确保生成恰好total_episode个选项
  • 简化链接匹配逻辑:直接通过position索引获取对应链接,不需要额外维护索引数组
  • 正确更新link_video:直接赋值link_video = episode_link[position],替换原错误的replace调用
  • 移除冗余变量:删除不必要的number数组,精简代码

额外提示

如果需要默认选中第一个剧集并初始化链接,可以在设置适配器后添加:

episodebox_input.setText(episode_number[0], false)
link_video = episode_link[0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:37:34