本人github
要在代码中处理EditTextPreference
,您通常会使用SharedPreferences
类来获取和设置该EditTextPreference
的值。在Android应用中,您通常会有一个继承自PreferenceActivity
或PreferenceFragmentCompat
的类来加载和显示您的偏好设置界面。以下是一个简单的示例,展示了如何在PreferenceFragmentCompat
中使用EditTextPreference
:
首先,在您的XML偏好设置文件中定义EditTextPreference
:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference
android:key="example_text"
android:title="Example Text Input"
android:summary="Enter some text"
android:dialogTitle="Example Text Input"
android:defaultValue="" />
</PreferenceScreen>
然后,创建一个继承自PreferenceFragmentCompat
的类,加载您的偏好设置文件,并设置PreferenceChangeListener
来监听EditTextPreference
的变化:
import android.os.Bundle
import androidx.preference.EditTextPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
class SettingsFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences, rootKey)
val editTextPreference: EditTextPreference? =
findPreference("example_text")
editTextPreference?.onPreferenceChangeListener =
Preference.OnPreferenceChangeListener { preference, newValue ->
// newValue is the text entered by the user
// Do something with the new value, e.g. save it to a database, update the UI, etc.
// Return true to update the preference's saved value
true
}
}
}
在这个示例中:
setPreferencesFromResource()
方法用于加载您的XML偏好设置文件。findPreference()
方法用于获取对EditTextPreference
的引用。onPreferenceChangeListener
是一个监听器,它会在用户更改EditTextPreference
的值时被调用。newValue
参数包含用户输入的新文本。在监听器中,您可以处理新值,例如保存它到数据库,更新UI等。如果您返回true
,偏好设置的保存值将被更新为新值。