为啥Android中的button只触发一次

如下

class MainActivity : AppCompatActivity(), View.OnClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val binding = ActivityMainBinding.inflate(layoutInflater)
        binding.button.setOnClickListener(this)
        setContentView(binding.root)
    }

    override fun onClick(v: View?) {
        when (v?.id) {
            R.id.button -> {
                val binding = ActivityMainBinding.inflate(layoutInflater)
                setContentView(binding.root)
                binding.imageView.setImageResource(R.drawable.img_2)
                binding.progressBar.progress = binding.progressBar.progress + 10
                binding.button.isClickable
                Log.e("1","1")
            }
        }
    }
}

log里面发现button只触发了一次,没整明白

你为什么要重新setContentView?界面已经变成你新实例化的布局了,你只在onCreate中设置了setOnClickListener,对于新布局并没有监听。但是我没搞懂,你为什么要重新setContentView?

class MainActivity : AppCompatActivity(), View.OnClickListener {
    private lateinit var binding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        binding.button.setOnClickListener(this)
        setContentView(binding.root)
    }
    override fun onClick(v: View?) {
        when (v?.id) {
            R.id.button -> {
                binding.imageView.setImageResource(R.drawable.img_2)
                binding.progressBar.progress = binding.progressBar.progress + 10
                binding.button.isClickable
                Log.e("1","1")
            }
        }
    }
}