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