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

Android Studio报错:Function invocation 'LayoutInflater(...)' expected求助

解决LayoutInflater调用报错:Function invocation 'LayoutInflater(...)' expected

报错原因很明确:你在调用ActivityMainBinding.inflate()和ActivityAddBusinessCardBinding.inflate()时,传入的LayoutInflater是类本身,而方法需要的是LayoutInflater的实例对象,不是类引用。

修改方案

直接用LayoutInflater.from(this)获取当前上下文对应的LayoutInflater实例即可,修改后的代码如下:

MainActivity 修改后代码

package com.example.appcartodevisita.ui

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.LayoutInflater
import com.example.appcartodevisita.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private val binding by lazy { ActivityMainBinding.inflate(LayoutInflater.from(this)) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(binding.root)
        insertListener()
    }
}

AddBusinessCardActivity 修改后代码

package com.example.appcartodevisita.ui

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.LayoutInflater
import com.example.appcartodevisita.databinding.ActivityAdicionarCartaoBinding

class AddBusinessCardActivity : AppCompatActivity() {

    private val binding by lazy { ActivityAdicionarCartaoBinding.inflate(LayoutInflater.from(this)) }

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

补充说明

获取LayoutInflater实例还有另一种写法,效果完全一致:

val inflater = getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater

但LayoutInflater.from(this)是更简洁的推荐写法,它内部已经封装了getSystemService的调用逻辑。

内容的提问来源于stack exchange,提问作者João Gabriel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:06:23