我有一段Java編程的經驗,但是我最近被介紹給Scala,並想用我的語言編寫Android應用程序。我使用ScalaIDE每日和AndroidProguardScala進行eclipse安裝,並且我可以運行用Scala編寫的Hello World應用程序。我決定通過代碼來改變TextView的值,以獲得使用Scala的感覺,但我似乎無法爲setText做任何工作。TextView with AndroidProguardScala的Settext
這是我最新的嘗試:
import android.app.Activity
import android.os.Bundle
import android.view.Menu
import android.widget.TextView
class MainActivity extends Activity {
def textview = findViewById(R.id.testTV)
override def onCreate(savedInstanceState : Bundle) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val works = "Scala is working"
textview.setText(works)
}
原來的方式,我發現貼做到這一點是:
val testText = findViewById(R.id.testTV)
val works = "Scala is working"
testText setText works
無論是工作方式。兩者都給我一個錯誤,指出setText不是android.view.View的成員。任何人都有這方面的經驗可以幫助我?
這裏是我的XML文件:
<TextView
android:id="@+id/testTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
。我現在得到了一個在Eclipse中的mouseover錯誤,它說: 類型不匹配;發現:android.view.View必需:android.view.TextView。我導入了兩個庫,如果我註釋掉android.view.View庫,我會得到同樣的結果。 – ubundude 2013-02-25 04:37:20
在這種情況下,假設返回的內容實際上是一個TextView,則可能需要進行類型轉換。可能類似於'findViewById(R.id.testTV).asInstanceOf [TextView]'。對不起,我不知道Android庫的具體工作方式,所以可能會有一些我錯過的東西。 – 2013-02-25 14:52:46