首页 > 解决方案 > Android按钮视图绑定ClickListener不起作用

问题描述

我的按钮上的 clickListener 不起作用,我想知道是否存在已知问题或我遗漏了什么?:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    mMainBinding = MainBinding.inflate(layoutInflater)
    setContentView(R.layout.main)
}

override fun onStart() {
    super.onStart()
    val button = findViewById<Button>(R.id.login_button)
    mMainBinding.loginButton.setOnClickListener {
        ...
    }
}

我尝试将 mMainBinding 初始化移到 setContentView 下方,并使用 MaterialButton 和普通按钮进行了尝试。使用用 findViewById 初始化的“按钮”它可以工作,但使用它不能使用绑定。如果我 ctrl + 单击 loginButton 它会导航到 xml 布局中的右侧按钮,该按钮也是可点击的,那么我错过了什么?

标签: androidandroid-buttonandroid-viewbinding

解决方案


如果您正在使用 Activity 那么您可以尝试使用 ->

binding = DataBindingUtil.setContentView(this, R.layout.activity_main);

如果您使用的是 Fragment,请尝试->

binding = DataBindingUtil.inflate(inflater, R.layout.fragment_your_videos, 容器, false); 视图 = binding.getRoot(); 返回视图;

这可能是DataBinding中的问题


推荐阅读