2010-06-06 34 views
3

我一直在尝试用Scala开发Android应用程序。scala-android.jar中有什么?

我已经得到的地步,我可以让应用程序编译,但是没有辅助功能的东西,如:

button.setOnClickListener(() => { 
    text.setText("test") 
}) 

(我说的是封那里)

我看到很多scala-android.jar的引用,并且在我的项目中有这个文件,但我不确定它在做什么,或者如何使用它。我感觉它具有这些帮助器转换功能,但我不确定。该文件运行jar -tvf scala-android.jar给了我这样的:

401 Sun Jun 06 10:06:02 MDT 2010 scala/Function0$class.class 
431 Sun Jun 06 10:06:02 MDT 2010 scala/Function0.class 
572 Sun Jun 06 10:06:02 MDT 2010 scala/Function1.class 
282 Sun Jun 06 10:06:02 MDT 2010 scala/ScalaObject$class.class 
271 Sun Jun 06 10:06:02 MDT 2010 scala/ScalaObject.class 
458 Sun Jun 06 10:06:02 MDT 2010 scala/runtime/BoxedUnit.class 

如果这不是我要找的,是有一个简单的库,会为这种东西做的转换?

回答

8

您可以创建自己的,我发现这在Scala中非常简单和轻量级。

这是我的,仅供您参考。

trait FindView 
{ 
    this: Activity => 

    def findView [WidgetType] (id: Int) : WidgetType = { 
     return findViewById (id).asInstanceOf[WidgetType] 
    } 

    implicit def listenerFromFunction (action:() => Any) = { 
     new View.OnClickListener() { 
      def onClick(v: View) {action()} 
     } 
    } 
} 

混入到你的Activity类中,你可以像你的例子那样做。

+0

很高兴在这里看到Android和Scala的一些知识。 – 2010-06-07 23:43:49

+0

+1真棒解释。谢谢!! – 2010-12-30 18:35:41