java 将内部类作为参数传递给gestureDetectorcompat

vlf7wbxs  于 2022-12-17  发布在  Java
关注(0)|答案(1)|浏览(64)

我试图处理im building上的一个应用程序的滑动。在youtube上找到了一种方法,但它使用的是Kotlin而不是java。
该方法使用内部类

class homepageGestureListener extends GestureDetector.SimpleOnGestureListener

而在我的超级课堂上

private GestureDetectorCompat detector;//needed to wire inner class to main activity

下面,在onCreate函数中,我尝试将gestureDetector分配给“detector”

detector=GestureDetectorCompat(this,homepageGestureListener());

这一行给出了错误“预期方法调用”,它不接受homepageGestureListener()作为参数。
在那里我怎样才能通过内部班?

hkmswyz6

hkmswyz61#

GestureDetectorCompat有两个公共构造函数,一个接受上下文和侦听器,另一个接受上下文、侦听器和处理程序。在您的情况下,它是第一个。您需要传递侦听器的示例作为第二个参数。类似于:

//...

private GestureDetectorCompat mGestureDetector;

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.main_activity);
        
        //...

        mGestureDetector = new GestureDetectorCompat(this, new LongPressListener()); // here passing LongPressListener()
    }

//..
}

查看官方文档中的此链接以了解更多信息。
编辑:哦,你的类扩展了GestureDetector.SimpleOnGestureListener。那么在这个例子中,就把this作为两个参数传递。
例如:

private GestureDetectorCompat detector

然后:

detector = new GestureDetectorCompat(this, new homepageGestureListener());

我稍微编辑了一下答案,这样您就可以传递内部类的一个示例。

相关问题