gpt4 book ai didi

android - 如何在 Android-Scala 应用程序中扩展 ImageView?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:01:33 25 4
gpt4 key购买 nike

我尝试了很多通过关键字在 google 中找到的解决方案:多个构造函数、scala、继承、子类。

似乎没有一个适合这个场合。 ImageView 具有三个构造函数:

ImageView(context)
ImageView(context,attribute set)
ImageView(context,attribute set, style)

在 Scala 中你只能扩展其中之一。使用更完整的构造函数 (ImageView(context,attribute set, style)) 并传递默认值的解决方案也不起作用,因为构造函数 ImageView(context) 确实与其他两个构造函数完全不同的东西。

一些使用特征或伴随对象的解决方案似乎不起作用,因为 CustomView 必须是一个类!我的意思是我不是唯一一个使用这个类的人(所以我可以用我想要的任何方式编写 scala 代码)还有使用这个类的 android-sdk,是的,它必须是一个类。

目标是拥有一个扩展 ImageView 和所有这些工作的 CustomView:

new CustomView(context)
new CustomView(context,attribute set)
new CustomView(context,attribute set, style)

如果您需要进一步澄清这个棘手的问题,请告诉我!

最佳答案

根据 Martin Odersky(Scala 的创建者)的说法,这是不可能的。

http://scala-programming-language.1934581.n4.nabble.com/scala-calling-different-super-constructors-td1994456.html 中:

"is there a way to call different super-constructors within different class-constructors - or does all have to go up to the main-constructor and only one super-constructor is supported?

No, it has to go through the main constructor. That's one detail where Scala is more restrictive than Java."

我认为最好的方法是用 Java 实现 View 。

关于android - 如何在 Android-Scala 应用程序中扩展 ImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13824884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com