2010-06-06 58 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