¿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

  • Cómo hacer referencia a programación <string> en archivo xml en android
  • Cómo manejar clics de botón utilizando el XML onClick dentro de Fragmentos
  • Diseño del centro Android
  • Fallo Android Studio
  • Cómo recuperar el valor de un atributo que contiene dos puntos en el nombre del atributo utilizando xpath
  • Cómo agregar varios marcos en xml
  • El atributo no se declara (Android) en los atributos xml básicos
  • Problemas con el diseño de XML de Android
  • Android xml dibujable imagen en pantalla completa de fondo
  • Android XmlPullParser UTF-8 problema
  • ¿Por qué no puedo definir atributos de android en el espacio de nombres predeterminado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.