როგორ შევინახოთ და გამოვიყენოთ თემის პარამეტრები Android-ის აპლიკაციაში?
sobes.tech AI
პასუხი AI-სგან
Android යෙදුමේ තේමාව සුරැකුම් සහ අදාළ කිරීම සඳහා කිහිපයක් ක්රම භාවිතා කළ හැකිය.
-
SharedPreferences: තේමාව තෝරාගැනීමේ හැඳුනුම්පතක් වැනි කුඩා දත්ත ගබඩා කිරීමට සරල ක්රමයකි.// තේමාව සුරැකුම් val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return with (sharedPref.edit()) { putInt(getString(R.string.saved_theme_key), themeId) apply() } // තේමාව කියවීම 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 තුළ තේමාව අදාළ කිරීම setTheme(savedThemeId) super.onCreate(savedInstanceState) -
DataStore: නවීන සහ අසින්ක්රෝන ක්රමයකි, දත්ත ගබඩා කිරීම සඳහා තොරතුරු නාලිකා සහ විශ්වාසදායක ගබඩා කිරීම ලබා දේ.// DataStore private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings") // තේමාව සුරැකුම් suspend fun saveTheme(themeId: Int) { dataStore.edit { settings -> settings[intPreferencesKey("theme_id")] = themeId } } // තේමාව ලබාගැනීම 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 }Activity තුළ තේමාව අදාළ කිරීම
DataStoreවෙතින් අගයක් ලබා ගැනීම (උදාහරණයක් ලෙස,collectභාවිතා කර coroutine එකක) සහsetThemeකැඳවීමෙන් සිදු විය හැකිය. තේමාව වෙනස් කිරීමෙන් පසු Activity නැවත නිර්මාණය කළ යුතු විය හැකිය, නිවැරදි ලෙස පෙන්වීම සඳහා. -
සැකසුම් පද්ධති තේමාවන්: Android තවමත් තේමාවන් සඳහා අභ්යන්තර සහාය සපයයි: ආලෝක, අඳුරු සහ පෙරනිමි (සැකසුම් පද්ධති අනුගමනය කරයි). මෙය සම්පත් මාර්ගයෙන් ක්රියාවට නැංවිය හැකිය.
- ආලෝක සහ අඳුරු තේමාවන් සඳහා ශෛලීන් නිර්මාණය කිරීම (
res/values/themes.xmlසහres/values-night/themes.xml). AppCompatDelegate.setDefaultNightModeභාවිතා කරමින් වැඩසටහනක් ලෙස තේමාව අදාළ කිරීම හෝandroid:themeමාර්ගගතව activity මනිෆෙස්ට් එකේ සැකසීම.
- ආලෝක සහ අඳුරු තේමාවන් සඳහා ශෛලීන් නිර්මාණය කිරීම (
තේමාව අදාළ කිරීම බොහෝවිට Activity නැවත නිර්මාණය කිරීමට අවශ්ය වේ, සම්පත් නිවැරදිව බරවීමට. මෙයට recreate() භාවිතා කළ හැකිය.