Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

Preference

Posted at

Preference (SharedPreference,PreferenceActivty,PreferenceFragment)

Preference

Preference は、Androidアプリケーションで設定やユーザーの状態を保存・管理するための仕組みです。

SharedPreferences

SharedPreferences は、キーと値のペアを保存し、簡単な永続的なデータ保存を実現するための仕組みです。設定やユーザーの状態などを保存するのに便利です。

 private val sharedPreferences: SharedPreferences by lazy {
        getSharedPreferences("MyPreferences", Context.MODE_PRIVATE)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // データの書き込み
        val editor = sharedPreferences.edit()
        editor.putString("username", "JohnDoe")
        editor.putInt("userAge", 25)
        editor.apply()

        // データの読み込み
        val username = sharedPreferences.getString("username", "")
        val userAge = sharedPreferences.getInt("userAge", 0)
    }

PreferenceActivty

PreferenceActivity は、Androidアプリケーションにおいて、ユーザーがアプリの設定や個人化を行うための画面を提供するための特別なアクティビティです。


PreferenceFragment

PreferenceFragment は、Androidアプリケーション内で設定画面を構築するためのフラグメントです。
PreferenceFragmentはXMLファイルを使用して設定画面を構築します。

import android.os.Bundle
import androidx.preference.PreferenceFragmentCompat

class SettingsFragment : PreferenceFragmentCompat() {
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        setPreferencesFromResource(R.xml.preferences, rootKey)

        // ユーザー名入力の Preference
        val usernamePreference = findPreference("username")
        usernamePreference?.summaryProvider = EditTextPreference.SimpleSummaryProvider.getInstance()
    }
}

res/xml/preferences.xml

XMLには、ユーザーが変更できる設定項目やオプションが定義されます。

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <EditTextPreference
        android:key="username"
        android:title="Username"
        android:summary="Enter your username"
        android:inputType="text" />
</PreferenceScreen>
class SettingsFragment : PreferenceFragmentCompat() {
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        setPreferencesFromResource(R.xml.preferences, rootKey)

        // ユーザー名入力の Preference
        val usernamePreference = findPreference<EditTextPreference>("username")

        // ユーザー名を設定
        usernamePreference?.text = "JohnDoe"

        // サマリーの表示を更新
        usernamePreference?.summaryProvider = Preference.SummaryProvider<EditTextPreference> {
            preference -> preference.text
        }
    }
}

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?