Androidda kengaytma sifatida qanday xususiyatlarni qo'shishingiz mumkin?
sobes.tech AI
AIdan javob
Android dasturlashda kengaytma funksiyalari (extension functions va properties) mavjud sinflarga yangi funksionallik qo'shish imkonini beradi, meros olish yoki dekoratorlardan foydalanmasdan. Bu SDK ning standart sinflari bilan ishlashda ayniqsa foydalidir.
Kengaytma properties mavjud sinflarga qo'shishimiz mumkin bo'lgan xususiyatlar. Ular holatni saqlamaydi, ularning hisoblangan qiymati getter yordamida aniqlanadi.
Androidda kengaytma properties dan foydalanish misollari:
-
LayoutInflater ga kirishni soddalashtirish:
// LayoutInflater ga kirishni ta'minlovchi kengaytma property qo'shish val Context.layoutInflater: LayoutInflater get() = LayoutInflater.from(this)Endi
context.layoutInflaterniLayoutInflater.from(context)o'rniga ishlatish mumkin. -
View ni yashirish uchun qisqa property:
// View ning ko'rinishini GONE ga o'rnatish uchun kengaytma property var View.isVisibleGone: Boolean get() = visibility == View.VISIBLE // Hozirgi holatni tekshirish uchun getter set(value) { // Holatni o'rnatish uchun setter visibility = if (value) View.VISIBLE else View.GONE }Endi
view.isVisibleGone = falseni ishlatib View ni yashirish mumkin. -
Ekran o'lchamini DP da olish:
// Ekran kengligini DP da olish uchun kengaytma property val Context.screenWidthInDp: Int get() = resources.displayMetrics.widthPixels / resources.displayMetrics.density.toInt()Misol uchun:
context.screenWidthInDp. -
SharedPreferences ga kirish:
// Nom bilan SharedPreferences ni olish uchun kengaytma property fun Context.sharedPreferences(name: String): SharedPreferences = getSharedPreferences(name, Context.MODE_PRIVATE)Bu funksiya bo'lsa-da, uni qulay kirish uchun ko'pincha property sifatida ishlatishadi:
context.sharedPreferences("my_prefs").
Kengaytma properties haqida muhim nuqtalar:
- Ular backing fields (qiymat saqlovchi o'zgaruvchilar) bo'lishi mumkin emas.
- Faqatgina getter (faqat o'qish) yoki getter va setter (o'qish-yazish) bilan aniqlanishi kerak.
- Ular statik metodlar sifatida kompilyatsiya qilinadi, shuning uchun ularni chaqirish klass egasi orqali amalga oshiriladi.
Asosan, Androidda, mavjud sinfga mantiqan tegishli bo'lgan va uning foydalanishini soddalashtiradigan har qanday hisoblangan property qo'shish mumkin, bu yordamchi funksiyalar yoki qobiq sinflar yaratmasdan.