Android Настройка пользовательских SummaryProvider не работает правильно - PullRequest
0 голосов
/ 20 марта 2020
class MyPreferenceFragment : PreferenceFragmentCompat() {

    var count = 0

    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        setPreferencesFromResource(R.xml.my_preference, rootKey)

        val myPreference: Preference? = findPreference("my_preference")

        myPreference?.summaryProvider = Preference.SummaryProvider<Preference> { 
            count++
            Log.d(TAG, "$count") // I checked out the count value is updated correctly
            count.toString()
        }

        myPreference?.onPreferenceClickListener =
            Preference.OnPreferenceClickListener { preference ->
                Toast.makeText(context, "${preference.summary}", Toast.LENGTH_SHORT).show()
                true
            }
    }
}

Я хочу динамически обновлять мою сводку предпочтений на основе значения count. Когда я открыл свой экран настроек, сводка была обновлена ​​корректно с 1, но больше не обновляется.

Я знаю, provideSummary() вызывается только тогда, когда getSummary() метод называется. Поэтому я добавляю onPreferenceClickListener для вызова этой функции.

...