2011-04-18 4 views
0

J'ai une question sur l'héritage des ressources des bibliothèques android.Hériter des ressources des bibliothèques android

Supposons que vous avez un projet de bibliothèque Android et dans cette bibliothèque que vous mettez des ressources (disons des chaînes pour le moment) sous le nom du package com.libexample

maintenant dans un projet androïde sous le nom du package com.example , Je fais référence à la bibliothèque que j'ai créée plus tôt.

Si je veux utiliser l'une des chaînes de la bibliothèque, je peux l'obtenir à l'aide

getString(com.libexample.R.string.test_string); 

Ma question est, est-il possible pour une ressource de chaîne dans mon projet principal pour obtenir attribué le même entier Identifiant comme une chaîne dans ma bibliothèque? Parce que si elle est, la déclaration de code ci-dessus serait en effet égal à:

getString(R.string.new_string); 

en supposant que le recours de new_string a été attribué le même ID que la ressource test_string.

+0

Je suppose qu'il est possible de faire correspondre les identifiants, sauf si l'une des deux possibilités est vraie: 1. Le compilateur Android est assez intelligent pour rechercher chaque bibliothèque pour chaque classe nommée R et vérifier chacun pour les identifiants qui sont déjà utilisés (très peu probable, je pense). 2. Les identifiants dans 'R' ne sont pas entièrement aléatoires et intègrent suffisamment d'informations de leur unité de compilation pour que les identifiants dans' com.libexample.R' soient effectivement garantis ne pas coïncider avec les identifiants dans 'com.someotherthing.R' (plus probable) . – aroth

Répondre

0

Apparemment, le compilateur ajoute automatiquement les ressources sous le même fichier R.java généré, ce qui empêche tout conflit.

Questions connexes