小编Ste*_*ang的帖子

使用视图绑定时,如何处理不同布局配置中缺失的视图?

据我所知,任何带有 ID 的 XML 元素都应该通过视图绑定自动拉入活动类。但是,Android Studio 不断提示我的按钮可以为 null,并且需要具有?.!!.进行编译。

如果我用 断言不可为 null !!.,它实际上会导致按钮出现运行时 NullPointerException。

为什么视图绑定无法识别我的按钮的类型和存在?

我的主要活动代码在这里:

package com.stevenswang.ageinminutes

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.stevenswang.ageinminutes.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

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

        binding.btnSelectDate.setOnClickListener {...} //this line gives the compiler error in the title
    }
    
}
Run Code Online (Sandbox Code Playgroud)

此处应用程序的 XML(完整):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/backgroundColor"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:padding="16sp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android android-button kotlin android-viewbinding

4
推荐指数
1
解决办法
977
查看次数