Как нарисовать фигуру после нажатия кнопки
Я хочу нарисовать фигуру после нажатия кнопки, но не знаю, как правильно соединить класс CanvasView и функцию showData(). Буду благодарен за любые подсказки.
MainActivity.kt
class MainActivity : AppCompatActivity() {
private var _binding: ActivityMainBinding? = null
private val binding get() = _binding!!
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
_binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.buttonShow.setOnClickListener {
showData()
}
}
private fun showData() {
........
}
}
CanvasView.kt
class CanvasView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
val paint = Paint()
paint.style = Paint.Style.STROKE
paint.color = Color.MAGENTA
paint.strokeWidth = 10f
canvas?.drawRect(10f, 20f, 300f, 200f, paint)
}
}
CanvasView связан с activity_main.xml как
<com.example.tryCombine.classes.CanvasView
android:layout_width="match_parent"
android:layout_height="200dp" />
Я пытался создать объект CanvasView в showData(), но это ни к чему не привело, т.к. требуются аргументы для передачи...