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

Android开发:Toast.makeText参数不匹配报错求助

Toast.makeText 参数不匹配问题排查

问题根源

你调用Toast.makeText时传入的第一个参数this,指向的是View.OnClickListener的实现对象,而不是Android要求的Context类型(比如你的Activity实例)。Toast.makeText的重载方法只接受Context作为第一个参数,所以参数类型不匹配导致报错。

解决方案

把第一个参数替换为正确的Context实例,有几种常用方式:

  • 方式1:通过点击的View获取Context
    直接使用点击事件传入的v对象获取Context,这是最通用的写法:
    Toast.makeText(v.context, "Anda berhasil mengerjakan quiz", Toast.LENGTH_SHORT).show()
    
  • 方式2:指定Activity实例(如果在Activity类中)
    如果这段代码写在Activity里,用this@你的Activity名称明确指向Activity实例:
    // 假设你的Activity叫QuizActivity
    Toast.makeText(this@QuizActivity, "Anda berhasil mengerjakan quiz", Toast.LENGTH_SHORT).show()
    
  • 方式3:使用Fragment的Context(如果在Fragment中)
    若代码在Fragment里,用requireContext()获取上下文:
    Toast.makeText(requireContext(), "Anda berhasil mengerjakan quiz", Toast.LENGTH_SHORT).show()
    

修改后的代码片段

以方式1为例,修改后的按钮点击逻辑:

R.id.btn_jawab -> {
    if (mSelectedOptionPosition == 0) {
         mCurrentPosition++

        when {
            mCurrentPosition <= mQuestionlist!!.size ->{
                setQuestion()
            }else -> {
                Toast.makeText(v.context, "Anda berhasil mengerjakan quiz", Toast.LENGTH_SHORT).show()
            }
        }

    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:51:02