Could not find method certificateClick(View) in a parent or ancestor Context for android:onClick att

问题:在给View设置点击事件的时候报错,具体如下:

java.lang.IllegalStateException: Could not find method certificateClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class androidx.appcompat.widget.AppCompatImageView with id 'iv_certificate_request_scan'
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:424)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:381)
        at android.view.View.performClick(View.java:7260)
        at android.view.View.performClickInternal(View.java:7222)
        at android.view.View.access$3800(View.java:825)
        at android.view.View$PerformClick.run(View.java:27725)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:227)

我在代码中是使用onClick绑定代码中的点击事件

<ImageView
            android:id="@+id/iv_certificate_request_scan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="certificateClick"
            android:paddingLeft="@dimen/es_pitch5"
            android:paddingTop="@dimen/es_pitch12"
            android:paddingRight="@dimen/es_pitch12"
            android:paddingBottom="@dimen/es_pitch12"
            android:src="@mipmap/icon_scan_gray"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

代码中的监听事件

private fun certificateClick(view: View){
        when(view.id){
            //扫描编号
            R.id.iv_certificate_request_scan -> {
                openCapture(true)
            }
            //选择门店
            R.id.chl_certificate_request_store -> {
                MDRouters.Builder().build(RouterTable.ENDORSE_SELECT_STORE).requestCode(SELECT_STORE).create(this).go()
            }
            //提交
            R.id.btn_certificate_request_submit -> {

            }
        }
    }

然后发现代码中的点击事件函数名是灰色的==,没有被使用的,所以看到这里使用了private关键字,把private去掉,就看到函数名变成黄色,说明已经被使用了,结果一运行确实可以

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值