🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

2426閲覧

Unresolved referenceの解決をお願い致します

nishino.michiya

総合スコア14

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2021/02/06 02:42

前提・実現したいこと

Kotolinの勉強を【はじめてのAndroidプログラミング】という書籍に書かれているコードを実際に書きながら学んでいる途中にエラーが発生しました。

やっていることは、タイマー処理の実装で、カウントダウン中に、指定した間隔で実行したい処理をonTickメソッドに、タイマー終了時の処理をonFinishメソッドに記述しています。

その中で【Unresolved reference: playStop】というエラーが起きて、参考書通りに書いているので、何をしていいかわからずです。

発生している問題・エラーメッセージ

33行目の【binding.playStop】のplyaStopが赤文字になり、Unresolved reference: playStopというエラーが起きました。
37行目、44行目のplayStopも赤文字になり前に進めない状況です。

Unresolved reference: playStop

該当のソースコード

MainActivity.kt

kotolin

1package com.example.mycountdowntimer 2 3import androidx.appcompat.app.AppCompatActivity 4import android.os.Bundle 5import android.os.CountDownTimer 6import com.example.mycountdowntimer.databinding.ActivityMainBinding 7 8class MainActivity : AppCompatActivity() { 9 private lateinit var binding: ActivityMainBinding 10 11 inner class MyCountDownTimer(millisInFutuer:Long,countDownInterval:Long): 12 CountDownTimer(millisInFutuer,countDownInterval){ 13 var isRunning = false 14 15 16 override fun onTick(millisUntilFinished: Long) { 17 val minute = millisUntilFinished / 1000L / 60L 18 val second = millisUntilFinished / 1000L % 60L 19 binding.timerText.text = "%id:%2&02d".format(minute,second) 20 } 21 22 override fun onFinish() { 23 binding.timerText.text = "0:00" 24 } 25 } 26 override fun onCreate(savedInstanceState: Bundle?) { 27 super.onCreate(savedInstanceState) 28 binding = ActivityMainBinding.inflate(layoutInflater) 29 setContentView(binding.root) 30 31 binding.timerText.text = "3:00" 32 var timer = MyCountDownTimer(3 * 60 * 1000,100) 33 binding.playStop.setOnClickListener{ 34 timer.isRunning = when(timer.isRunning){ 35 true ->{ 36 timer.cancel() 37 binding.playStop.setImageResource( 38 R.drawable.ic_baseline_play_arrow_24 39 ) 40 false 41 } 42 false -> { 43 timer.start() 44 binding.playStop.setImageResource( 45 R.drawable.ic_baseline_stop_24 46 ) 47 true 48 } 49 } 50 } 51 } 52}

build.gradle

plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdkVersion 29 buildToolsVersion "30.0.2" defaultConfig { applicationId "com.example.mycountdowntimer" minSdkVersion 23 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildFeatures{ viewBinding = true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.2.0' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'com.google.android.material:material:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' }

試したこと

参考書通りに書いており、なぜエラーが起きるのかわからず、まだKotlinについても全然理解が薄いため、何もしておりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/02/06 03:20

> 参考書通りに書いており、なぜエラーが起きるのかわからず、 ちゃんと本で説明されている作業手順に沿っていますか? チャプター09を試されているのだと思いますが、playStopはレイアウト上では恐らくボタンのはずです。 activity_main.xmlのレイアウトが正しくないのではないでしょうか。以下で提供されているサポートのサンプルコードと比べてみてください。 https://www.sbcr.jp/support/4815602892/ > まだKotlinについても全然理解が薄いため、何もしておりません。 Kotlinもそうですが、Android特有の事情もあるので、面倒でも前のチャプターでも説明されているであろうことを丁寧に追っていくことを強くお勧めします。 ※上記、ダウンロードしたサンプルコードを見ただけでの指摘です。
hoshi-takanori

2021/02/06 03:50

activity_mail.xml に android:id="@+id/playStop" というのはありますか? スペルミスしてませんか?
nishino.michiya

2021/02/06 05:19

お二人ともありがとうございます。 playStopはレイアウト上でのボタンでした。 そのボタンのIDのスペルミスをしておりました。 正しく直したら、しっかりエラーもなくなりました。 ありがとうございました。
guest

回答1

0

自己解決

コメント欄の通りになります

投稿2021/02/23 04:42

nishino.michiya

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問