Кнопки 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, то студия всячески ругается, но прога работает. Куда мне все таки засунуть этот код и правильный ли он?