为了这个问题,我的preference.xml
包含3个项目:
<EditTextPreference
android:defaultValue="300"
android:key="edittext"
android:numeric="integer"
android:summary="foo"
android:title="bar" />
<SwitchPreference
android:defaultValue="false"
android:key="switch"
android:title="A switch" />
<CheckBoxPreference
android:defaultValue="false"
android:key="checkbox"
android:title="A checkbox" />
设置活动:
class SettingsActivity : PreferenceActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
fragmentManager.beginTransaction().replace(android.R.id.content, SettingsFragment()).commit()
}
class SettingsFragment : PreferenceFragment(),
SharedPreferences.OnSharedPreferenceChangeListener {
fun drawPreference() {
addPreferencesFromResource(R.xml.preference)
val sharedPref = PreferenceManager.getDefaultSharedPreferences(activity)
val prefCount = sharedPref.all.size
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
drawPreference()
}
}
代码位于kotlin
,行sharedPref.all
被翻译为java sharedPref.getAll()
我在此方法调用中发现不一致的结果。
在我的三星Galaxy S7 edge,android 7.0 无论转换阶段和复选框
,sharedPref.getAll()
都会返回3
在我的三星GT-S7572上,安卓4.1.2
sharedPref.getAll()
1
,2
3
有人遇到过同样的问题吗?
这是预期的行为吗?
或者它是android版本的问题吗?
或者这是电话的问题?