2010-07-14 4 views
3

Je cherche à ajouter une table des meilleurs scores (locale, pas en ligne) à mon application Android et je voulais avoir un aperçu de la meilleure façon d'aborder le problème. J'ai une liste d'utilisateurs (en train d'être enregistrés dans un fichier et de les lire en tant que tableau d'objets Utilisateur), et les scores élevés doivent référencer ces données pour remplir la table avec le nom et la photo de l'utilisateurTableau des scores les plus élevés

Pour l'affichage, je pense qu'un TableLayout serait probablement ma meilleure option. Je peux faire des colonnes pour l'image, le nom, le score, etc.

Pour l'information elle-même, je pense que peut-être une table SQLite serait le meilleur moyen d'organiser mes données? Si c'est le cas, alors il peut être utile de déplacer mes données utilisateur vers une table SQLite afin que je puisse assurer que les données sont correctement référencées.

Quelqu'un a-t-il des informations ou des opinions utiles à ce sujet? Merci.

MISE À JOUR: Je suis allé avec la base de données SQLite (en utilisant deux tables) et cela fonctionne très bien! Ce n'était pas trop difficile d'apprendre et de travailler non plus. Pour la mise en page, il s'avère qu'un ListView avec un adaptateur personnalisé était le meilleur moyen d'accomplir ce que je voulais (plus flexible qu'un TableLayout).

Répondre

3

Je n'ai pas beaucoup fait avec Andriod mais je crois que vous êtes sur la bonne voie. L'utilisation de SQLite pour les données aidera non seulement à structurer et à organiser vos données, mais aussi à développer vos données de manière exponentielle. Vous pouvez utiliser une méthode standard commune pour passer de la base de données SQL aux objets en utilisant un modèle DAO. Je recommanderais d'utiliser SQLite avec MyBatis. MyBatis est un utilitaire Object Relational Mapping pour Java. Il vous permet d'écrire sql et de récupérer vos résultats en tant qu'objet java. MyBatis

+0

La chose MyBatis a l'air plutôt gentille, même si elle est peut-être exagérée dans mon cas. J'ai seulement environ 5 champs de données par utilisateur (dont la plupart sont des primitives), donc je ne pense pas qu'il devrait être trop difficile d'analyser une table SQL. – idolize

2

Personnellement, je pense qu'il serait plus simple d'utiliser une table SQlite pour cela. D'après ce que je peux vous dire, vous n'avez vraiment besoin que d'une seule table, ce qui peut être un peu exagéré, mais pour moi, cela semble beaucoup plus simple que de traiter des E/S de fichiers.

également avec la base de données, vous pouvez plus ajouter facilement des informations supplémentaires telles que la date d'enregistrement, etc.

+0

Merci pour la réponse. Je pense qu'il vaudrait mieux utiliser deux tableaux: un pour les utilisateurs et un pour les scores ... mais je n'ai pas beaucoup utilisé les bases de données relationnelles, donc je ne suis pas sûr. – idolize

+0

Vous pouvez utiliser deux tables si vous le souhaitez, mais cela semble trop. Je fais actuellement un tas de petites applications de test pour un iphone et j'utilise une base de données unique d'environ 15 colonnes et 150 lignes. pour quelque chose comme une table HS, je ne vois pas pourquoi vous auriez besoin de 2 tables. Bien sûr, les tables seront plus petites, mais dans ce cas, il est si petit que je ne peux pas sembler beaucoup d'une différence de performance. – Adam

2

Pour quelque chose d'aussi simple saleté et non critique comme une liste des scores élevés, une base de données se sent un peu exagéré de me . Je serais enclin à utiliser un fichier CSV moi-même.

Bien sûr, prenez cela avec un grain de sel, car je ne développe pas sur Android. Si le surcoût pour SQLite est trivial (ou s'il est déjà sur Android en attente de votre utilisation!), Vous pouvez aussi l'utiliser pour vos besoins de stockage de données, ne serait-ce que pour garder votre code cohérent.

+0

SQLite fait déjà partie de la pile Android, mais je n'ai pas beaucoup utilisé les bases de données en général, donc je l'ai évité. L'autre chose à noter est que je ne dépasserai probablement jamais plus de 20 utilisateurs sur l'appareil à tout moment, donc la vitesse est moins un problème. – idolize

+1

Ensuite, vous pouvez envisager d'utiliser SQLite par souci de pratique. L'ajout de la compétence de base de données à vos compétences vous rendra un programmeur beaucoup plus polyvalent, et vous devez commencer quelque part. :-) – BlairHippo

1

ScoreNinja, la bibliothèque de partitions open-source pour Android, pourrait vous faire gagner du temps ou vous donner quelques idées.

+0

Je ne pense pas que je vais utiliser cela comme une solution, mais je peux jeter un coup d'oeil à la source pour avoir des idées. Merci! – idolize

+1

ScoreNinja ne fonctionne plus .. – Datoraki

Questions connexes