前提・実現したいこと
はじめてのAndroidプログラミング 第4版
Chapter8:MySlideshowでCannot create an instance of an abstract classのエラー解決できず困っています。
発生している問題・エラーメッセージ
Cannot create an instance of an abstract class エラー個所:pager.adapter = MyAdapter(supportFragmentManager)
該当のソースコード
MainActivity.kt package com.example.kenta.myslideshow import android.media.MediaPlayer import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Handler import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentPagerAdapter import kotlinx.android.synthetic.main.activity_main.* import kotlin.concurrent.timer class MainActivity : AppCompatActivity() { private lateinit var player: MediaPlayer abstract class MyAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) { private val resources = listOf( R.drawable.slide00, R.drawable.slide01, R.drawable.slide02, R.drawable.slide03, R.drawable.slide04, R.drawable.slide05, R.drawable.slide06, R.drawable.slide07, R.drawable.slide08, R.drawable.slide09 ) override fun getCount(): Int { return resources.size } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) pager.adapter = MyAdapter(supportFragmentManager) val handler = Handler() timer(period = 5000) { handler.post { pager.currentItem = (pager.currentItem + 1) % 10 } } player = MediaPlayer.create(this, R.raw.getdown) player.isLooping = true } override fun onResume() { super.onResume() player.start() } override fun onPause() { super.onPause() player.pause() } }
試したこと
ネットで複数Cannot create an instance of an abstract classの解決方法について調べましたが解決できずでした。
初心者のため、深く理解できていない可能性は高いです。
補足情報(FW/ツールのバージョンなど)
Mac(macOS Mojave:10.14.4)
AndroidStudio3.4を利用しております。
他に必要な情報などあればお教えいただければ調べて記載いたします。
回答1件
あなたの回答
tips
プレビュー