1

Je suis ce android developer page pour la création d'attributs personnalisés pour une application. Tout va bien et Je suis capable de compiler et voir les résultats aussi. Mais la partie qui est en cause est IDE.Android Studio se plaint de la coutume de l'espace de noms inattendu. Est-il possible de désactiver/masquer ce message d'erreur? C'est très agaçant.Préfixe d'espace de nom inattendu "personnalisé" trouvé pour le fragment de balise lors de la tentative d'utilisation d'attributs personnalisés

Même avec cette erreur, cependant, je suis capable de compiler et exécuter l'application.

enter image description here

J'ai suivi follwing étapes.

1) res/valeurs/fichier attrs.xml créé et ajouté

<?xml version="1.0" encoding="utf-8"?> <resources> 
<declare-styleable name="FragArguments"> 
    <attr name="max_allowed" format="integer"/> 
    <attr name="header" format="string"/> 
</declare-styleable> 

2) Essayer d'utiliser dans mon étiquette de fragment de fichier MainLayout

<LinearLayout xmlns:custom="http://schemas.android.com/apk/res" 
          android:layout_width="fill_parent" 
          android:layout_height="0dip" 
          android:layout_weight="1"> 
       <fragment android:id="@+id/msg" 
          android:name="org.android.fragment.MessageFragment" 
          custom:max_allowed="85" 
          custom:header="@string/header" 
          android:layout_width="wrap_content" 
          android:layout_height="match_parent"/> 
      </LinearLayout> 

3. Application de la attributs personnalisés via le code remplaçant la méthode onInflate() du fragment

@Override 
    public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState) { 
     super.onInflate(activity, attrs, savedInstanceState); 

     TypedArray typedArray = activity.obtainStyledAttributes(attrs, R.styleable.FragArguments); 
     max_allowed = typedArray.getInt(R.styleable.FragArguments_max_allowed, -1); 
     header = typedArray.getString(R.styleable.FragArguments_header); 
     typedArray.recycle(); 
    } 

Répondre

5

Je viens de trouver la solution.

L'ID problème MissingPrefix dit charpie pour ne rechercher que les attributs XML qui manquent l'espace de noms Android prefix.So nous pouvons le faire de deux façons: -

  1. CANissue la commande suivante pour analyser les fichiers sous le répertoire principal du projet et ses sous-répertoires.

peluches --check MissingPrefix myProject

  1. en studio android créer un fichier lint.xml avec le contenu suivant et ajouter dans le répertoire de l'application.
<?xml version="1.0" encoding="utf-8"?> 
<lint> 
    <issue id="MissingPrefix" severity="ignore"/> 
</lint> 
1

Merci à @Nicks réponse. Vous pouvez également ajouter les lignes suivantes au fichier build.gradle, à l'intérieur de la portée android {}:

lintOptions { 
     disable 'MissingPrefix' 
    }