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

Android开发问题:点击CardView跳转新Activity失败及报错排查

问题解决:CardView点击跳转Activity失败及报错修复

报错分析

当前存在两个关键报错:

  • Modifier 'override' is not applicable to 'local function':在onCreate方法内部尝试重写onViewCreated,局部函数不允许使用override修饰符
  • Unresolved reference: activity:错误引用了不存在的activity变量,且Intent目标写错成Binding类而非Activity类

修复方案(无需替换为Button)

步骤1:正确重写onViewCreated方法

将onViewCreated从onCreate内部移到MainActivity类的顶层,作为类的成员方法重写。

步骤2:修正Intent跳转逻辑

  • 用当前Activity实例(this或MainActivity@this)替代activity变量
  • 将Intent的目标类从ActivityDashboardTmsBinding::class.java改为DashboardTmsActivity::class.java(Binding是布局绑定类,不是Activity)

修正后的MainActivity.kt代码

package com.cameron.armymaintenance

import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.cardview.widget.CardView
import com.cameron.armymaintenance.databinding.ActivityMainBinding

class MainActivity : DrawerBaseActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
    }

    // 正确重写onViewCreated,作为类成员方法
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        
        // 方式1:通过findViewById获取CardView
        view.findViewById<CardView>(R.id.card1).setOnClickListener {
            val intent = Intent(this@MainActivity, DashboardTmsActivity::class.java)
            startActivity(intent)
        }

        // 方式2:通过ViewBinding直接获取(更推荐)
        // binding.card1.setOnClickListener {
        //     val intent = Intent(this@MainActivity, DashboardTmsActivity::class.java)
        //     startActivity(intent)
        // }
    }
}

补充说明

  • 如果使用ViewBinding,直接通过binding.card1获取控件比findViewById更简洁安全,注释部分提供了这种写法
  • DrawerBaseActivity和DashboardTmsActivity的代码无需修改,保持原样即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:35:17