• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

Android, uno sguardo da vicino ai namespace XML

By Giuseppe Maggi | on 29 Dicembre 2017 | 0 Comment
Android
namespace XML - Android developer

Quando si lavora a file XML collocati tra le risorse del progetto, si nota subito che il nodo root è caratterizzato dalla presenza di uno o più namespace.

<LinearLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   ... 
   ...
 >

Questo termine – nell’ambito del formato XML in generale – rappresenta uno spazio dei nomi in cui sono definiti attributi e tag che possono essere utilizzati nel documento.

Nella dicitura sopra riportata si nota che al namespace http://schemas.android.com/apk/res/android è stato associato il nome android pertanto tutti gli attributi utilizzati a corredo dei tag dovranno avere tale prefisso: ad esempio, non chiederemo di usare l’attributo layout_width bensì android:layout_width. Ciò preserverà da eventuali ambiguità qualora in una propria libreria si definissero attributi XML personalizzati omonimi di quelli già presenti in Android.
Mentre il namespace android appena citato è riferito alla generalità della piattaforma, quando si integrano librerie esterne può essere necessario richiedere l’uso di ulteriori namespace che contemplino la definizione di attributi specifici.
Caso frequente, quando si integra la libreria appcompat (praticamente, sempre) per rendere disponibili funzionalità più nuove in versioni datate del sistema, è necessario aggiungere l’ulteriore namespace che, di norma, viene etichettato con il prefisso app:

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >

Un caso che in molti avranno notato, si verifica quando si prova ad utilizzare l’attributo showAsAction nella definizione di un item di una risorsa menu. Richiedendone l’impiego come elemento del namespace android, Android Studio ci segnalerà l’esistenza di una sua nuova versione nella libreria di supporto del quale è consigliabile l’utilizzo. Ciò perchè showAsAction è stato definito nelle API 11 mentre appcompat che lo ha ridefinito permette l’uso delle proprie funzionalità a ritroso fino alle API 7. Pertanto, è assolutamente da preferire l’uso dell’attributo nella versione della libreria di più ampia validità.
Altro namespace molto diffuso è tools, definito così:

<RelativeLayout
   ...
   ...
   xmlns:tools="http://schemas.android.com/tools">

Il namespace tools offre funzionalità utili durante il design o comportamenti specifici a tempo di compilazione. Non avendo alcun effetto sull’esecuzione dell’applicazione, le annotazioni ad esso relative verranno rimosse dai build-tools (cui abbiamo accennato in un post precedente) durante la fase di building non comportando pertanto un aumento delle dimensioni del prodotto finale.
Ad esempio:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    ...
    ...
    tools:context="it.devapp.myapplication.MainActivity">

l’attributo context indicherà a quale Activity il layout è destinato e ciò metterà l’editor – in fase di progettazione – in condizione di supportare il programmatore in una maniera possibile solo con la premessa di tale conoscenza. Un esempio piuttosto immediato di questo vantaggio è rappresentato dalla possibilità di suggerire quali metodi indicare per il completamento dell’attributo onClick di un pulsante: conoscendo l’Activity relativa sarà semplice per Android Studio fare una proposta o permettere di creare un metodo nuovo che abbia il nome uguale al valore assegnato all’attributo.

I namespace XML sono elementi così onnipresenti nelle risorse Android che il programmatore corre il rischio di abituarsi troppo alla loro vista e di trascurarne il senso. Invece essi costituiscono, come abbiamo visto, un elemento essenziale alla corretta progettazione delle risorse ed un loro utilizzo superficiale potrebbe indurre in errori.

Alla prossima!

Share this story:
  • tweet

Tags: androidandroid studiocreare app mobilemobilerisorse Androidxmlxml namespace

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • IntelliJ IDEA: IDE per programmare in Java e Kotlin

    25 Luglio 2018 - 0 Comment
  • Android: usare Connect Pattern

    10 Luglio 2018 - 0 Comment
  • Android: il metodo findViewById() non richiede più il cast

    21 Giugno 2018 - 0 Comment

Author Description

No Responses to “Android, uno sguardo da vicino ai namespace XML”

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO