はじめてのAndroidプログラミング第4版
のchapter12章のMyShcedulerのMainActicityのソースのlistがが赤文字になってしまい先に進めません。
多分変数名で宣言していない事からエラーが出てると思うのですが、
まだ勉強を始めたばっかりでよく分かりません。
ご教授の程宜しくお願い致します。
以下が著者のソースです。
kotlin
1package com.example.myscheduler 2 3import android.content.Intent 4import android.os.Bundle 5import androidx.appcompat.app.AppCompatActivity 6import androidx.recyclerview.widget.LinearLayoutManager 7import com.google.android.material.snackbar.Snackbar 8import io.realm.Realm 9import io.realm.kotlin.where 10import kotlinx.android.synthetic.main.activity_main.* 11import kotlinx.android.synthetic.main.content_main.* 12 13class MainActivity : AppCompatActivity() { 14 private lateinit var realm: Realm 15 16 override fun onCreate(savedInstanceState: Bundle?) { 17 super.onCreate(savedInstanceState) 18 setContentView(R.layout.activity_main) 19 setSupportActionBar(toolbar) 20 realm = Realm.getDefaultInstance() 21 list.layoutManager = LinearLayoutManager(this) 22 val schedules = realm.where<Schedule>().findAll() 23 val adapter = ScheduleAdapter(schedules) 24 list.adapter = adapter 25 26 fab.setOnClickListener { view -> 27 val intent = Intent(this, ScheduleEditActivity::class.java) 28 startActivity(intent) 29 } 30 adapter.setOnItemClickListener { id -> 31 val intent = Intent(this, ScheduleEditActivity::class.java) 32 .putExtra("schedule_id", id) 33 startActivity(intent) 34 } 35 } 36 37 override fun onDestroy() { 38 super.onDestroy() 39 realm.close() 40 } 41}
たぶん synthetic import を使ってると思いますが、最近は推奨されてないので、findViewById を使うか、view binding に切り替える必要があるでしょうね…。
https://qiita.com/taigen/items/116ff3856eab6634e47b
先日は 5 版のご質問がありましたね^^;
まず、日進月歩の世界ですので少し古いだけで最新の環境に合わなくなる場合が多々あります。本の環境とバージョン等が異なる場合は、如何に初心者向けとされている内容でも、ネットから情報を集めてご自分の環境に合わせるという技術が必要になります。( 5 版でも既に古くなっています。)
とりあえず公式のサイトを御覧になって、その中に問い合わせのリンクがあったと思いますので、活用してみては如何でしょうか。(返答があるかは分かりませんが。)
https://www.sbcr.jp/product/4815601140/
回答2件
あなたの回答
tips
プレビュー