Android tətbiqində mövzu parametrlərini necə saxlamaq və tətbiq etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Android tətbiqində mövzu parametrlərini saxlamaq və tətbiq etmək üçün bir neçə yanaşma mövcuddur.
-
SharedPreferences: Seçilmiş mövzunun identifikatoru kimi kiçik məlumatların saxlanması üçün sadə üsul.// Mövzunu saxlamaq val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return with (sharedPref.edit()) { putInt(getString(R.string.saved_theme_key), themeId) apply() } // Mövzunu oxumaq val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) val defaultValue = resources.getInteger(R.integer.default_theme_id) val savedThemeId = sharedPref?.getInt(getString(R.string.saved_theme_key), defaultValue) ?: defaultValue // Activity-də mövzunu tətbiq etmək setTheme(savedThemeId) super.onCreate(savedInstanceState) -
DataStore: Daha müasir və asinxron üsul olub, məlumatların axınlarını və daha etibarlı saxlama təmin edir.// DataStore private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings") // Mövzunu saxlamaq suspend fun saveTheme(themeId: Int) { dataStore.edit { settings -> settings[intPreferencesKey("theme_id")] = themeId } } // Mövzunu əldə etmək val themeFlow: Flow<Int> = dataStore.data .catch { exception -> if (exception is IOException) { emit(emptyPreferences()) } else { throw exception } } .map { preferences -> preferences[intPreferencesKey("theme_id")] ?: R.style.Theme_App }Mövzunu Activity-də tətbiq etmək,
DataStore-dan dəyər alındıqdan sonra (məsələn,collectistifadə edilərək coroutine-də) vəsetThemeçağırıldıqdan sonra baş verə bilər. Mövzunu dəyişdikdən sonra resursların düzgün yüklənməsi üçün Activity-nin yenidən yaradılması lazım ola bilər. -
Sistem tənzimləmələri üçün mövzu: Android həmçinin mövzular üçün daxili dəstək təqdim edir: aydın, qaranlıq və standart (sistem tənzimləmələrini izləyir). Bu, resurslar vasitəsilə həyata keçirilə bilər.
- Aydın və qaranlıq mövzular üçün üslublar yaradın (məsələn,
res/values/themes.xmlvəres/values-night/themes.xml). AppCompatDelegate.setDefaultNightMode-u proqram vasitəsilə və yaandroid:themeilə manifestdə tənzimləyin.
- Aydın və qaranlıq mövzular üçün üslublar yaradın (məsələn,
Mövzunun tətbiqi adətən resursların düzgün yüklənməsi üçün Activity-nin yenidən yaradılmasını tələb edir. Bunu recreate() istifadə edərək edə bilərsiniz.