亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試設置一個抽象的監聽器

嘗試設置一個抽象的監聽器

繁花不似錦 2023-09-06 16:46:00
我現在正在開發一個小應用程序來測試運動和觸摸事件。我面臨的問題是我的 Listener 類必須被抽象,但我無法從該偵聽器創建一個對象,我需要將其放在 imageView 的“setOnTouchListener”方法上。監聽類:abstract class GestureListener(directionDisplayer: TextView) : View.OnTouchListener,` GestureDetector.OnGestureListener {    private var directionDisplayer: TextView = directionDisplayer    override fun onTouch(v: View?, event: MotionEvent?): Boolean {        val gestureDetector = GestureDetector(this)        gestureDetector.onTouchEvent(event)        return true    }    override fun onFling(        downEvent: MotionEvent?,        moveEvent: MotionEvent?,        velocityX: Float,        velocityY: Float    ): Boolean {        var result = false        if (downEvent != null && moveEvent != null) {            var diffY: Float = moveEvent.y - downEvent.y            var diffX: Float = moveEvent.x - downEvent.x            val SWIPE_MIN = 100            val SWIPE_Velocity = 100 //TODO WIDTH            if (Math.abs(diffX) > Math.abs(diffY)) {                //RIGHT OR LEFT                if (Math.abs(diffX) > SWIPE_MIN && Math.abs(velocityX) > SWIPE_Velocity) {                    if (diffX > 0) {                        swipeRight()                    } else {                        swipeLeft()                    }                    result = true                }            } else {                //UP OR DOWN                if(Math.abs(diffY) > SWIPE_MIN && Math.abs(velocityY) > SWIPE_Velocity) {                    if(diffY > 0) {                        swipeUp()                    } else {                        swipeDown()                    }                    result = true                }            }        }        return result    }    private fun swipeDown() {        directionDisplayer.text = "Direction: DOWN"    }    private fun swipeUp() {        directionDisplayer.text = "Direction: UP"    }有人知道如何解決這個問題嗎?
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

GestureListener是一個抽象類。因此,您必須在抽象類本身或代碼中實現尚未實現的成員,如下iew.OnTouchListener所示-GestureDetector.OnGestureListener


    canvasImage.setOnTouchListener(object : GestureListener(textView) {

        override fun onShowPress(e: MotionEvent?) {

            TODO("not implemented")

        }


        override fun onSingleTapUp(e: MotionEvent?): Boolean {

            TODO("not implemented")

        }


        override fun onDown(e: MotionEvent?): Boolean {

            TODO("not implemented")

        }


        override fun onScroll(

            e1: MotionEvent?,

            e2: MotionEvent?,

            distanceX: Float,

            distanceY: Float

        ): Boolean {

            TODO("not implemented")

        }


        override fun onLongPress(e: MotionEvent?) {

            TODO("not implemented")

        }

    })


查看完整回答
反對 回復 2023-09-06
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號