現在、参考書を元にAndroidアプリを作成しています。
下記に添付しているのは、アプリ内でシークバーを使って身長を入力するための処理部分です。
この中で★★★とつけた行のコードに関してなのですが、テキスト曰く
「ユーザによりシークバーの値が変更されたら、シークバーの値(Int型)をTextViewに表示します。ここではtextプロパティを利用していますが、これはCharSequence型なので、Kotlinに用意されているtoStringメソッドでInt型をString型に変換してから代入しています。」とあります。
textプロパティのCharSequence型とは何者なのでしょうか。「textプロパティはCharSequence型なんだなぁ...」と暗記してしまうのは簡単なのですが、理由がわからずもやもやしています。
わざわざString型ではなくCharSequence型である理由を、例を挙げて教えていただけると助かります。
ちなみに所々入れてあるコメントは私個人の覚え書きです。
Kotlin
1 val pref = PreferenceManager.getDefaultSharedPreferences(this) 2 val heightVal = pref.getInt("HEIGHT", 160) //共有プリファレンスから"HEIGHT"の値を取得し、heightValに代入 3 height.text = heightVal.toString() //身長の値はIntなのでStringに変換してから、heightのtextプロパティにheightValを代入 4 seekBar.progress = heightVal //seekBarのprogress(初期値)プロパティにheightValを代入 5 6 seekBar.setOnSeekBarChangeListener( 7 object : SeekBar.OnSeekBarChangeListener{ 8 override fun onProgressChanged( //SeekBarに変更が加えられたとき 9 seekBar: SeekBar?, 10 progress: Int, //SeekBarの値 11 fromUser: Boolean 12 ) {height.text = progress.toString() //変更が加えられたとき、String型にしてheightのtextプロパティに代入★★★ 13 } 14 15 override fun onStartTrackingTouch(seekBar: SeekBar?) { //SeekBarに触れた時の処理。今回は何もなし 16 17 } 18 19 override fun onStopTrackingTouch(seekBar: SeekBar?) { //SeekBarを離した時の処理。今回は何もなし 20 21 } 22 } 23 )
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/11 10:31