如何在kotlin中实现C语言中的函数指针

Oriel ·
更新时间:2024-09-20
· 550 次阅读

Game.kt

package com.fly.game import android.annotation.SuppressLint import android.app.Activity import android.content.pm.ActivityInfo import android.os.Bundle import android.widget.Toast import com.fly.graphic.DrawView import com.fly.graphic.Renderer class Game : Activity() { lateinit var game_view : DrawView var renderer : Renderer = Renderer() @SuppressLint("SourceLockedOrientationActivity") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE renderer.SetDisplay{ Toast.makeText(this,"test",Toast.LENGTH_SHORT).show() } game_view = DrawView(this) game_view.SetRenderer(renderer) setContentView(game_view) } }

Renderer.kt

package com.fly.graphic class Renderer() { var render : () -> Unit = {}; init { } fun SetDisplay(Display: () -> Unit) { render = Display } }

DrawView.kt

package com.fly.graphic import android.content.Context import android.graphics.Canvas import android.view.View open class DrawView(context : Context) : View(context) { private var renderer : Renderer = Renderer() init { } override fun onDraw(canvas: Canvas?) { super.onDraw(canvas) renderer.render() } fun SetRenderer(r : Renderer) { renderer = r } }

运行后,如下图

Screenshot_2020-03-23-18-36-38.png


作者:为fei作歹



c语言中 函数 Kotlin 函数指针 指针 C语言

需要 登录 后方可回复, 如果你还没有账号请 注册新账号