Кнопки Android Kotlin

Код кнопки

    private lateinit var wifiViewModel: WifiViewModel
    private var _binding: FragmentWifiBinding? = null

    // This property is only valid between onCreateView and
    // onDestroyView.
    private val binding get() = _binding!!

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        wifiViewModel =
            ViewModelProvider(this).get(WifiViewModel::class.java)

        _binding = FragmentWifiBinding.inflate(inflater, container, false)
        val root: View = binding.root

        val textView: TextView = binding.textWifi
        wifiViewModel.text.observe(viewLifecycleOwner, Observer {
            textView.text = it
        })

        val generateButton: Button = binding.generateBtn
        generateButton.setOnClickListener(){
            qrCodeImage.setImageBitmap(getQrCodeBitmap("f"))
        }

        return root
    }
    <Button
        android:id="@+id/generateBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="80dp"
        android:onClick="onGenerateBtnClick"
        android:text="Generate!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent" />

Если я пишу эту функцию в в тот фрагмент, в котором кнопка существует, выдается ошибка Could not find method onGenerateBtnClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class com.google.android.material.button.MaterialButton with id 'generateBtn'.

Если я пишу эту функцию в MainActivity, то студия всячески ругается, но прога работает. Куда мне все таки засунуть этот код и правильный ли он?


Ответы (0 шт):