Bonjour à tous,
J'aimerais avoir quelques suggestions à propos de mon projet d'application et certaines questions que je me pose. Pour être le plus clair possible, je vais prendre le temps de bien détailler et vais vous montrer un schéma explicatif de ce que je souhaite obtenir.
Objectif :
- L'utilisateur doit avoir le choix entre différents buttons, sachant que chaque bouton ouvre une activité disposant d'une listview et renvoyant des infos différentes selon le bouton cliqué. Ex: si je clique sur le bouton "Rongeur", la listview ne renverra que les infos propres aux rongeurs, alors que le bouton "Oiseaux" renverra des infos différentes.
Pour le moment, j'ai créé:
- une classe Handler (qui hérite de SQLiteOpenHelper): chemin d'accès de la DB, définitions des "CRUD" (create, read, ...), nom des tables, colonnes, etc.
- une classe Adapter, dans laquelle je compte écrire mes méthodes et requêtes pour la base de données, histoire de les définir une fois pour toutes et pas pour chaque bouton.
- une classe pour ma table, avec constructeur, getters et setters
- une MainActivity avec mes listener prêt pour chacun des boutons.
- une ListViewActivity qui montrera la listview avec un contenu différent selon le bouton sur lequel on a cliqué.
J'ai mis en pièce jointe un schéma de l'idée que je veux mettre en place pour faire communiquer mes différentes classes ensemble.
En gros il s'agit de :
- dire à chaque listener de renvoyer une certaine valeur dans une variable que j'appellerai ici A (ex: si tu cliques sur le bouton1, A = 1).
- définir une méthode dans la classe "...handler.java" du type récupération d'infos (par exemple: récupère tous les éléments de telle colonne quand la valeur de telle colonne = A).
- invoquer cette méthode à partir de la listview qui s'ouvre après un clic sur n'importe quel bouton et display les éléments récupérés.
=> Donc tous les boutons renvoient à la même activité avec la listview mais comme chaque clic modifie la valeur de A, la listview est différente à chaque fois.
Donc voila mes deux questions :
- Est-ce que l'idée générale, l'architecture de mon programme vous semble suffisamment optimisée pour que ça tourne bien? Je pense qu'a priori ça devrait tenir la route puisque le but est de limiter au maximum le nombre de méthodes en les définissant une fois pour toute dans la classe ...Handler.java, et d'avoir qu'une activité Listview en réponse à tous les clics.
- J'ai du mal à trouver des ressources expliquant comment définir une méthode dans une classe faisant appel à des infos obtenues dans une autre activité (en l'occurrence, ici la valeur de A). Je pense qu'elle devrait s'écrire sous la forme (il manque certainement beaucoup de choses mais dans l'idée ça devrait y ressembler non?) :
Pour ensuite invoquer la méthode findNameInTable() à partir de ma ListViewActivity et lui dire de mettre les résultats dans la listview ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public findNameInTable(int A){ string sql = " select NAME from MY_TABLE where CAT1 = " + A; c = database.rawQuery(sql, null); }
J'ai l'idée de ce que je veux faire mais il m'est assez difficile de la concrétiser! J'ai lu de nombreux tutoriaux mais j'ai souvent du mal à m'y retrouver vu que tous n'utilisent pas la même structure (une classe handler, une classe adapter, une main activity, une classe pour définir les tables, etc.).
N'hésitez pas à me demander plus de détails sur mon code si cela peut préciser mes questions, et merci d'avance pour toute idée, suggestion, piste ou lien vers des ressources qui m'aideront!
Bonne journée !
Partager