35 votes

Android O casting pour findViewById n'est plus nécessaire?

J'ai récemment mis à jour mon kit SDK d'android et de créer des outils pour API 26 dans Android Studio, et j'ai directement remarqué que Android Studio est le marquage de mon point de vue jette comme "redondant" quand je fais quelque chose comme ceci:

TextView itemName = (TextView) findViewById(R.id.menuItemName);

Après quelques recherches, j'ai constaté que depuis SDK 26, findViewById utilise Java 8 caractéristiques de retourner le même type d'objet, mais ce que je voulais savoir c'est si il est complètement sûr d'enlever toutes les distributions. Cela peut-il poser des problèmes sur Android avant le 26? Plus d'infos sur ce qui serait utile que je ne l'ai pas trouvé sur internet. Merci à l'avance.

42voto

Marcin Orlowski Points 24633

La signature de la méthode a changé comme vous l'avez remarqué, et maintenant il ressemble à:

public <T extends View> T findViewById(int id);

par rapport à l'ancien (pré SDK 26) un:

public View findViewById(int id);

donc, tant que vous utilisez le SDK de 26 ans (ou plus récent) pour compiler votre projet, vous pouvez supprimer en toute sécurité le casting à partir de votre code que vous serez en utilisant de nouveaux findViewById() qui n'en a plus besoin.

afin d'avoir une plus faible minSdk que 26 sera pas causer un problème ?

Non, ni minSdk ni targetSdk vraiment d'importance. Ce qui importe, est - compileSdk qui doit être 26 ou plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X