<作ればわかる! androidプログラミング Kotlin対応>の書籍2章目にあるHello!Worldアプリを作成しています。
greetingText.text = getString(R.string.good_morning_text)
<greetingText.text>に記載したtext部分に赤波線が表示され<variable expected>エラーになってしまいました。
activity_main.xmlを再度開き
・当該のTextViewのidが<greetingText>であること
・当該のTextViewのtext項目が<@string/good_morning_text>でありリソースが確保されていること
は確認しました。
初心者のため基本的なミスやつまづきかと思うのですが、どのように対処すればよいのか分からず困っています。
よろしければ皆様のお知恵をお貸しいただけないでしょうか。
・AndroidStudioを利用
もしかして、greetingText が赤字になってませんか? その場合、synthetic import を有効にする必要があるかも。
ありがとうございます!
greetingTextが赤字になっていました(赤字だとエラーなんですね、、)。
import kotlinx.android.synthetic.main.activity_main.*も記載していたのですが、こちらも赤字になっていました。
調べたところ、import kotlinx.android.synthetic.main.activity_main.*は最近廃止になっていたようです。
下記を参考に修正したところ、赤字も赤波線も消えました!
ありがとうございました!
参考:https://teratail.com/questions/330555#reply-456902
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.f.greeting02.databinding.ActivityMainBinding
//import kotlinx.android.synthetic.main.activity_main.* 廃止
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
//setContentView(R.layout.activity_main)
setContentView(binding.root)
//morningBtn.setOnClickListener{
//greetingText.text = getString(R.string.good_morning_text)
binding.morningBtn.setOnClickListener{
binding.greetingText.text = getString(R.string.good_morning_text)
}
binding.afternoonBtn.setOnClickListener{
binding.greetingText.text = getString(R.string.good_afternoon_text)
}
binding.eveningBtn.setOnClickListener{
binding.greetingText.text = getString(R.string.good_evening_text)
}
}
}
回答1件
あなたの回答
tips
プレビュー