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 件のコメント:
コメントを投稿