Closed5

参照先コンポーネントによって Nullable になったりならなかったりする

tkttkt
val button = binding.sampleButton

この結果が nullable だったりそうじゃなかったりする

tkttkt
package com.example.application.presenter.activity

import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.databinding.ActivityTopBinding


class TopActivity : AppCompatActivity() {
    private lateinit var binding: ActivityTopBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityTopBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)

        val binding.sampleButton
    }
}
tkttkt

これは、対象となる Activity の xml が複数あり、その中に android:id="@+id/sampleButton" があったりなかったりするのが原因。
対象ファイル全てで対象に対して同一の id を付与することで NonNullable になった。

tkttkt

この id の対象があるか、とかで切り分けするのにも使えそう

tkttkt

知らなかったら、xml 側に原因があることに気づけずに嵌りそう

このスクラップは2021/04/06にクローズされました