How can via Kotlin mapOf map buttons key to value? I have such code.
reference to start_button is correct, by clickin on it I can open corect button in xml, but in debug mode buttonsMap value (start_button) is null.
class StartDialog : DialogFragment(){
private val buttonsMap: Map<String, Button> by lazy(LazyThreadSafetyMode.NONE) {
mapOf(
"startButton" to start_button
)
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog = Dialog(requireContext())
dialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialog.setContentView(R.layout.start_dialog)
displayButtons(Wrapper(requireContext())
return dialog
}
private fun displayButtons(wrapper: Wrapper) {
wrapper.queryButtons(object : Wrapper.OnQueryButtonListener {
override fun onSuccess(buttons: List<ButtonDetails>) {
buttons.forEach { button ->
buttonsMap[button.key]?.apply {
text = "${button.description}"
setOnClickListener {
wrapper.startProcess(requireActivity(), button)
}
}
}
}
})
}
}
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/start_button"
android:layout_width="300dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:gravity="center"
android:textColor="@color/ef_white"
android:text="Start"
android:textSize="16sp">