Как нарисовать фигуру после нажатия кнопки

Я хочу нарисовать фигуру после нажатия кнопки, но не знаю, как правильно соединить класс 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(), но это ни к чему не привело, т.к. требуются аргументы для передачи...


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