Accès aux contenus de res / raw par programme (Android)
Je suis en train de travailler sur une application pour Android avec quelques autres personnes, et le contenu principal est spécifié par nos designers comme des fichiers texte dans un certain format de fichier, qui nous ensuite d'analyser, de traiter et de servir dans l'application. Nous sommes en train de les ranger dans res/raw
.
Ceci rend idéal pour les concepteurs car quand ils veulent ajouter du contenu, ils ont tout simplement ajouter un fichier à res/raw
. C'est gênant en tant que développeur, cependant, puisque nous les développeurs faut ensuite ajouter R.raw.the_new_file
à un tableau dans le code de spécifier les fichiers à traiter au démarrage.
Est-il un moyen d'accéder à la ressource ID de res/raw
par programmation? Idéalement, lorsque l'application démarre, nous pourrions faire un appel pour voir quels fichiers sont dans res/raw
processus de tous, afin que nous puissions éliminer les petits frais généraux grâce à la correspondance entre le contenu de res/raw
avec celle de notre tableau dans le code.
La voie la plus prometteuse que j'ai vu est getAssets
de Ressourcespermettez-moi d'appeler list(String)
sur le D'assetmanagermais j'ai eu du mal à trouver ce travail, en particulier puisque vous ne pouvez pas appeler directement "res/raw"
que votre chemin d'accès (ou au moins, il n'a pas fonctionné quand j'ai essayé.
source d'informationauteur pablo.meier
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la réflexion.
Après ce liste contient tous les Id de ressource dans le res/raw dossier.
Si vous avez besoin du nom de la ressource... f.getName() renvoie.
Cette réponse peut être un peu en retard, vous devez utiliser les actifs dossier à la place. Là, vous pouvez avoir une hiérarchie de dossiers et de le lire comme un fichier système.
Pour votre info le getAssets retourne un gestionnaire de fichiers dans le "actifs" dans le dossier de votre projet Android et pas dans la "res/raw". "res/raw" va dans le "R" Package Java. les actifs.liste(chemin de) Retourne un tableau de fichiers dans le dossier donné par rapport à votre dossier des actifs. L'actif du dossier est également pas un traditionnel dossier, mais Android résumés de sorte qu'il "se sent" comme des fichiers normaux. Cela devient encore plus important si vous faites de la JNI et que vous voulez lire vos actifs à partir de c/c++.
Vous pouvez utiliser
pour obtenir l'identificateur approprié. cependant, je ne comprends pas pourquoi vous mettez en œuvre votre solution si compliqué que ça? quels sont les avantages pour le designer? pourquoi il ne suffit pas de mettre les fichiers dans le dossier drawable?