Quelles propriétés pouvez-vous ajouter en tant qu'extension dans Android?
sobes.tech IA
Réponse de l'IA
Dans le développement Android, les fonctions et propriétés d'extension permettent d'ajouter de nouvelles fonctionnalités aux classes existantes sans héritage ni utilisation de décorateurs. Cela est particulièrement utile lors de la manipulation des classes standard du SDK.
Propriétés d'extension sont des propriétés que nous pouvons ajouter aux classes existantes. Elles ne stockent pas d'état, leur valeur calculée étant déterminée par un getter.
Exemples d'utilisation des propriétés d'extension en Android :
-
Simplification de l'accès à LayoutInflater :
// Ajout d'une propriété d'extension pour accéder à LayoutInflater val Context.layoutInflater: LayoutInflater get() = LayoutInflater.from(this)Il est maintenant possible d'utiliser
context.layoutInflaterau lieu deLayoutInflater.from(context). -
Propriété courte pour masquer une View :
// Propriété d'extension pour définir la visibilité de View à GONE var View.isVisibleGone: Boolean get() = visibility == View.VISIBLE // Getter pour vérifier l'état actuel set(value) { // Setter pour définir l'état visibility = if (value) View.VISIBLE else View.GONE }Il est maintenant possible d'utiliser
view.isVisibleGone = falsepour masquer la View. -
Obtenir la taille de l'écran en DP :
// Propriété d'extension pour obtenir la largeur de l'écran en DP val Context.screenWidthInDp: Int get() = resources.displayMetrics.widthPixels / resources.displayMetrics.density.toInt()Exemple d'utilisation :
context.screenWidthInDp. -
Accès à SharedPreferences :
// Propriété d'extension pour obtenir SharedPreferences par nom fun Context.sharedPreferences(name: String): SharedPreferences = getSharedPreferences(name, Context.MODE_PRIVATE)Bien qu'il s'agisse d'une fonction, elle est souvent utilisée comme propriété pour un accès pratique :
context.sharedPreferences("my_prefs").
Points importants sur les propriétés d'extension :
- Elles ne peuvent pas avoir de champs de soutien (variables stockant une valeur).
- Elles doivent être définies uniquement avec un getter (lecture seule) ou avec un getter et un setter (lecture-écriture).
- Elles sont compilées en tant que méthodes statiques, donc leur appel se fait via la classe propriétaire.
En résumé, en Android, vous pouvez ajouter toute propriété calculée qui appartient logiquement à une classe existante et facilite son utilisation, évitant ainsi de créer des fonctions auxiliaires ou des classes enveloppantes.