Che cosa utilizza lo spazio dei nomi app in android xml

Di seguito è riportto il codice di un menu visualizzato in un'attività (DetailFragment.xml del corso Sunshine udacity android)

Non sono riuscito a capire perché due sottosisthemes diversi sono necessari. Perché non posso usare il namespace android: invece di app:

  • Android ServiceTestCase per IntentService
  • La mappa di località si blocca in un dispositivo OnePlus One
  • Apri applicazione Android dall'URL utilizzando il filter intent non funzionante
  • Come posizionare il cursore a destra in EditText
  • Scrivere più di una string in un file senza eliminare i primi preferiti ANDROID per il browser
  • Avvio e fine dell'applicazione Android
  • In sotto xml parte quando sostituisco app: actionProviderClass = "android.support.v7.widget.ShareActionProvider" con app: actionProviderClass = "android.widget.ShareActionProvider"

    Sembrava dare un errore di assegnazione, ma funziona bene se l'applicazione viene cambiata in android come sotto android: actionProviderClass = "android.widget.ShareActionProvider"

    Non riesco a capire cosa sta accadendo esattamente qui.

    <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> 

  • Mostra errore sulla punta del text di modifica Android
  • Test automatico per Cordova / Phonegap Webview su Android
  • Strano exception: non è ansible lanciare String in Boolean quando si utilizza getBoolean
  • Come sfumare il gradiente di uno background del button?
  • Layout nascosto di viewFlipper
  • Android WebView, Scala image per adattarsi allo schermo
  • 3 Solutions collect form web for “Che cosa utilizza lo spazio dei nomi app in android xml”

    Ci sono due versioni di ShareActionProvider, il framework android e la libreria di supporto v7 .

    In Sunshine è necessario supportre la versione min SDK 10, mentre ShareActionProvider è stato aggiunto nel framework dal livello API 14, quindi come fornire la funzionalità a SDK 10-13? Si utilizza invece la versione della libreria di supporto .

    Import la libreria di supporto in build.gradle qui

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

    Ora torni alla tua domanda circa lo spazio dei nomi delle applicazioni. Sunshine utilizza gli attributi che non sono disponibili nel framework sui SDK più bassi che supportno (actionProviderClass e showAsAction) , quindi devono utilizzare gli attributi personalizzati forniti dalla libreria di supporto e utilizzare gli attributi personalizzati necessari per utilizzare l' applicazione spazio dei nomi . Lo spazio dei nomi android è per gli attributi del framework come suggerisce il nome.

     <?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 è una versione più vecchia di Android compatibilità. Per utilizzare questo, è necessario aggiungere una dipendenza Gradle:

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

    Attualmente sto anche attraversando il corso Udacity come te. Ho avuto problemi con la specifica dell'azione actionProviderClass nel dettaglioFragment.xml. Verifica che l'attributo actionProviderClass deve utilizzare lo spazio dei nomi del nome dell'applicazione. Penso che questa potrebbe essere la soluzione che stai cercando.

     <?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> 

    Notare che l'attributo actionProviderClass utilizza lo spazio dei nomi del nome dell'applicazione .

    Soluzione trovata da: link . La prima risposta

    Assicurati inoltre che build.gradle per l'applicazione sia la stessa del link

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.