1

私は Android 用の Java でプログラミングした経験が少しありますが、最近 Scala を紹介されたので、この言語で Android アプリをコーディングしたいと考えています。私は ScalaIDE nightly と AndroidProguardScala で Eclipse をセットアップしており、Scala で書かれた Hello World アプリを問題なく実行できます。コードを介して TextView の値を変更して Scala の使用感をつかむことにしましたが、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>
4

2 に答える 2

2

findViewByIdおそらく、メソッドViewを持たない を返します。setTextで型を宣言していないためtestText、コンパイラは の型を推測していViewます。

試す:

val testText:TextView = findViewById(R.id.testTV)

コンパイラがそれがTextViewであり、が機能することを認識できるようにしsetTextます。

于 2013-02-24T10:24:06.933 に答える