java - tools - android tutorial español
Android O casting para encontrar ViewById ya no es necesario? (2)
Recientemente, actualicé mi SDK de Android y herramientas de compilación para API 26 en Android Studio y me di cuenta directamente de que Android Studio marcaba mis visualizaciones como "redundantes" cuando hago algo como esto:
TextView itemName = (TextView) findViewById(R.id.menuItemName);
Después de algunas investigaciones, descubrí que desde SDK 26, findViewById
usa las características de Java 8 para devolver el mismo tipo de objeto, pero lo que quería saber es si es completamente seguro eliminar todas las versiones. ¿Esto causará problemas en Android antes del 26? Cualquier información adicional sobre esto sería útil ya que no encontré mucho en Internet. Gracias por adelantado.
Simple y Elegante
En la versión antigua (SDK debajo de 26)
TextView name=(TextView) findViewById(R.id.TextView);
Por encima del SDK 26
TextView name= findViewById(R.id.TextView);
La firma del método cambió como lo notó y ahora se ve así:
public <T extends View> T findViewById(int id);
en comparación con el anterior (pre SDK 26) uno:
public View findViewById(int id);
siempre que use el SDK 26 (o más reciente) para compilar su proyecto, puede eliminar de manera segura el casting de su código ya que usará el nuevo findViewById()
que ya no lo requiere.
¿Entonces tener un minSdk menor de 26 no causará problemas?
No, ni minSdk
ni targetSdk
realmente importan. Lo que importa es compileSdk
que debe ser 26
o superior.