Android Studioを初めて使用する初心者です。
サンプルプログラムからSpinner, seekBar、RadioButton、RadioButtonをコードイングしてその値をheight.texに表示することを確認できましたが、アプリ再起動時に選択した値がheight.texには反映しますがSpinner, seekBar、RadioButtonそれぞれにも設定値が反映されるようにしたいです。
ネット上でいくつかの参考例がありましたが理解できずにいます。
下記のサンプルコードで再起動時に設定値ががSpinner, seekBar、RadioButtonに反映されるにはどのようなコーデイングが必要なのでしょうか方法を教えていただきたく宜しくお願い致します。
Andoroid Studio(kotlin対応)
-------------------------------------HeightActivity.xt
package com.example.mysize
import android.os.Bundle
import android.preference.PreferenceManager
import android.view.View
import android.widget.AdapterView
import android.widget.RadioButton
import android.widget.SeekBar
import android.widget.Spinner
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.edit
import kotlinx.android.synthetic.main.activity_height.*
class HeightActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_height)
//Spinner------
spinner5.onItemSelectedListener=
object : AdapterView.OnItemSelectedListener{
override
fun onItemSelected(
parent: AdapterView<*>?,
view: View?,
position: Int,
id: Long
) {
val spinner5 = parent as? Spinner
val item = spinner5?.selectedItem as? String
item?.let {
if (it.isNotEmpty()) height.text = it
}
}
override fun onNothingSelected(parent: AdapterView<*>?) { } } val pref = PreferenceManager.getDefaultSharedPreferences(this) val heightVal = pref.getInt("HEIGHT", 160) height.text = heightVal.toString() seekBar.progress = heightVal
//seekBar-------
seekBar.setOnSeekBarChangeListener(
object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(
seekBar: SeekBar?,
progress: Int,
fromUser: Boolean
) {
height.text = progress.toString()
}
override fun onStartTrackingTouch(seekBar: SeekBar?) { } override fun onStopTrackingTouch(seekBar: SeekBar?) { } })
//RadioButton------
radioGroup.setOnCheckedChangeListener { group, checkedId ->
height.text = findViewById<RadioButton>(checkedId).text
}
}
override fun onPause() { super.onPause() val pref = PreferenceManager.getDefaultSharedPreferences(this) pref.edit { //保存してる putInt("HEIGHT", height.text.toString().toInt()) } }
}
回答1件
あなたの回答
tips
プレビュー