package パッケージ名import android.content.Contextimport android.content.SharedPreferencesimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.view.Viewimport kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() { companion object { const val FILE_NAME = "file_name" const val PREFERENCE_KEY = "key" } private lateinit var preferences: SharedPreferences private val storedBtnListener = View.OnClickListener { val inputText = editText.text.toString() // プリファレンスに保存する // edit() 書き込む // putString() String 型のデータを書き込む 引数1: 識別子, 引数2: 保存したいデータ // apply() 書き込みを確定する preferences.edit().putString(PREFERENCE_KEY, inputText).apply() } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // SharedPreferences オブジェクトの取得 // このオブジェクトに対してデータの要求・保存といった操作を行う preferences = getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE) // プリファレンスから、保存されている文字列を取得 // まだ保存されていない場合は "未登録" を返す val storedText = preferences.getString(PREFERENCE_KEY, getString(R.string.default_value)) // EditText に保存されていた文字列をセットする editText.setText(storedText) btnStore.setOnClickListener(storedBtnListener) }}<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:ems="10" android:inputType="textPersonName" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.3" android:importantForAutofill="no" tools:ignore="LabelFor" /> <Button android:id="@+id/btnStore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:text="@string/stored_button" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText" app:layout_constraintVertical_bias="0.2" /></androidx.constraintlayout.widget.ConstraintLayout><resources> <string name="app_name">SharedPreferences</string> <string name="stored_button">保存</string> <string name="default_value">未登録</string></resources>