¿Cuál es el uso del espacio de nombres de aplicaciones en android xml

A continuación se muestra el código de un menú que se muestra en una actividad (DetailFragment.xml de Sunshine udacity android course)

No podía entender por qué se necesitan dos espacios de nombres diferentes a continuación. ¿Por qué no puedo usar el espacio de nombres android: en lugar de la aplicación:

En la parte inferior xml cuando reemplazo la aplicación: actionProviderClass = "android.support.v7.widget.ShareActionProvider" with app: actionProviderClass = "android.widget.ShareActionProvider"

Parecía dar algunos errores de asignación, pero funciona bien si la aplicación se cambia a android como abajo android: actionProviderClass = "android.widget.ShareActionProvider"

No soy capaz de entender lo que está sucediendo exactamente aquí.

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_share" android:title="@string/action_share" app:showAsAction="always" app:actionProviderClass="android.support.v7.widget.ShareActionProvider" /> </menu> 

3 Solutions collect form web for “¿Cuál es el uso del espacio de nombres de aplicaciones en android xml”

Existen dos versiones de ShareActionProvider, la de android framework y la de v7 .

En Sunshine necesita admitir min SDK versión 10, mientras que ShareActionProvider se agregó al framework desde el nivel API 14, así que ¿cómo proporcionar la característica a SDK 10-13? En su lugar, utiliza la versión de la biblioteca de soporte .

Importar la biblioteca de soporte en build.gradle aquí

 dependencies { ... compile 'com.android.support:appcompat-v7:21.0.2' } 

Ahora regrese a su pregunta sobre el espacio de nombres de la aplicación. Sunshine está utilizando los atributos que no están disponibles en el marco de los SDK inferiores que admiten (actionProviderClass y showAsAction) , por lo que deben utilizar los atributos personalizados proporcionados por la biblioteca de soporte y utilizar los atributos personalizados que necesita para utilizar la aplicación espacio de nombres El espacio de nombres android es para los atributos del marco como el nombre sugerido.

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_share" android:title="@string/action_share" app:showAsAction="always" app:actionProviderClass="android.support.v7.widget.ShareActionProvider" /> </menu> 

support.v7 es una compatibilidad antigua versión de Android. Para usarlo, debe agregar una dependencia de Gradle:

 dependencies { compile 'com.android.support:appcompat-v7:23.0.1' } 

Actualmente estoy pasando por el curso de Udacity como tú. Yo estaba teniendo problema con la especificación de la actionProviderClass en el detailFragment.xml. Resulta que el atributo actionProviderClass debe utilizar el espacio de nombres del nombre de la aplicación. Creo que esto podría ser la solución que está buscando.

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:Sunshine = "http://schemas.android.com/apk/res-auto"> <item android:id = "@+id/action_share" android:title = "@string/action_share" Sunshine:actionProviderClass = "android.support.v7.widget.ShareActionProvider" Sunshine:showAsAction = "always"/> </menu> 

Observe que el atributo actionProviderClass utiliza el espacio de nombres del nombre de la aplicación .

Solución encontrada en: link . La primera respuesta

También asegúrese de que build.gradle para la aplicación sea el mismo que el vínculo

  • Cambiar el tema de android de cordova config.xml
  • Análisis de archivos XML locales con Sax en Android
  • El soporte de diseño de derecha a izquierda está causando problemas de advertencia en el editor de xml
  • Dimens.xml en la carpeta de valores de 7 "y 10" tableta, ¿cómo?
  • Android crea y escribe xml en un archivo
  • Almacenamiento de datos grandes local o en línea para la aplicación de Android?
  • Leer ApplicationManifest de Aplicación de Android (apk) usando .NET
  • ¿Cómo puedo generar recursos XML en tiempo de ejecución en Android?
  • Color del fondo de la tostada que es cambiado
  • Crear vista sobre cardview en android
  • NullPointerException lanzado en Eclipse al intentar abrir la vista de Android XML?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.