AndroidでTextViewなどのViewの表示切替を行った後、次回のアプリ起動でそのView表示可否状態を維持したいときの保存はSharedPreferencesが便利です。
実装方法
AndroidのViewの表示可否状態(Visibility)は整数型で定義されており、
この値をSharedPreferencesで保存。
アプリ起動時に保存データの読み込みを行えばよいです。
この値をSharedPreferencesで保存。
アプリ起動時に保存データの読み込みを行えばよいです。
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private val sharedPreferences by lazy{ getSharedPreferences("SaveState", MODE_PRIVATE) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 保存データ読み込みを行ってViewに設定
textView.visibility = sharedPreferences.getInt("visibility", View.VISIBLE)
}
fun clickButton(view: View) {
val value = if (textView.visibility == View.VISIBLE) View.INVISIBLE else View.VISIBLE
textView.visibility = value
// 状態を保存する
sharedPreferences.edit().putInt("visibility", value).apply()
}
}
コードにあるView.VISIBLEが「表示」、View.INVISIBLEが「非表示」を表しており、これがInt型です。
なので、View.visibilityをSharedPreferencesに保存すればよいです。
サンプルコードの全体
javaバージョンもこっちに載せとく
0 件のコメント:
コメントを投稿