我有一段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