French Changer le texte de Listview et l'enregistrer.

Namzzaj

Member
Licensed User
Longtime User
Bonsoir,

Je cherche à ce que l'utilisateur puisse changer le nom d'un "item" de listview en faisant un Longclick et qu'il puisse l'enregistrer malgré une sortie de l'application.

J'ai bien pensé à n'utiliser que des edittext, mais ça va être long à mettre en place! Et je ne sais pas comment enregistrer les données.

Merci bien.
 

Namzzaj

Member
Licensed User
Longtime User
peut-être avec scrollview plutôt (j'aurais des colonnes à ajouter) ?
 

klaus

Expert
Licensed User
Longtime User
Avec une ListView impossible.
Avec une ScrollView possible regarde dans ScrollView examples qui est un répertoire avec toute une série d'exemples.
Regarde les libraries CustomListView ou UltimateListView (payant).
Pour sauver les données tu peux les sauver dans un fichier dans Activity_Pause et lire dans Activity_Resume ou ailleurs.
Pour tout ce qui concerne des fichiers regarde le chapitre 14.10 Files dans le Beginner's Guide.
 

Namzzaj

Member
Licensed User
Longtime User
Merci pour ta réponse Klaus.
J'utilise finalement scrollview, c'est plus facile d'utilisation.

Voici ce que j'ai commencé et ce que je veux faire.
Dans la "table des matières", je voudrais que l'élève entre le nom de son texte, son nom et sa classe. C'est réglé avec les editText dans le panel. Ensuite qu'il appuie sur le bouton à côté et que ça l'envoie vers ce qu'il a ou va créer (textes/poésies), dans une autre page donc.

Q1 : je ne sais pas comment envoyer chaque bouton vers une page différente sachant que dans le code il n'apparait qu'une fois (btn1).....
Q2 : actuellement avec le format "tablette" que j'ai utilisé, je ne peux entre que 9 lignes. Comment en insérer jusqu'à l'infini? une barre de défilement?
Q3 : pour sauvegarder les pages (noms, classes, et textes) qui vont être créees, j'ai vu qu'on pouvait utiliser file.dirinternal. A priori c'est ça qu'il me faut (à confirmer), mais je ne vois pas du tout comment m'y prendre. J'ai regardé le begginer's guide au chapitre 14.10 et quelques exemples trouvés sur le forum, mais je sèche =) Je dois créer un fichier .text que je mets dans /File du programme?


Le zip est joint.
Faites pas attention aux lignes en vert dans le code, c'est pour me repérer. Newbee oblige...

Merci par avance.
Marc.
 

Attachments

  • exquisses1.zip
    9 KB · Views: 346

Namzzaj

Member
Licensed User
Longtime User
Pour Q1 j'ai pensé à Tag et sender, avec quelquechose qui ressemble à startactivity() aussi..... je fais pas mal de test mais je suis bloqué avec des erreurs au moment où je clique.

Pour Q2 ça marcherai avec scrollview2D?

Pour Q3 : si je comprends bien, activity_resume c'est là où on laissé l'appli après l'avoir sauvegardé dans activity_pause.
Certes. Mais où trouve t-on ce qu'il faut y mettre?

Désolé pour cette perte de temps, mais si je comprends une fois, c'est définitif !
 

klaus

Expert
Licensed User
Longtime User
Désolé, mais j'ai dû rater ton post #4.
J'ai jeté un coup d'oeuil à ton code mais je ne comprends pas ce que tu veux faire.
Au niveau des layouts il y a des incohérences.
Tu définis un écran 'standard' de 320 x 480 x 160, mais tu utilises des objets nettement plus grand !?

Q1. Dans le projet joint il y la réponse avec la propriété Tag, mais je ne comprends pas ce que tu veux faire dans la routine Click des boutons !
Q2. Bien sûr que ça fonctionne avec ScrollView, il est fait pour ça, mais pour cela il faut redéfinir la hauteur du Panel interne du ScrollView par rapport à ce tu as inséré ! Fait dans la version modifiée.
Q3. Je ne comprends pas quelles données tu veux sauvegarder et ce que tu veux en faire.

Qu'est ce que tu entends par exquisses ?
Je connais esquisses, mais pas exquisses.
 

Attachments

  • exquisses2.zip
    9.2 KB · Views: 296
Last edited:

Namzzaj

Member
Licensed User
Longtime User
Je regarde ça ce soir.

Oui les échelles ce n'est pas encore ça =) C'est pour tablette (taille galaxy note2) et j'ai pas encore compris ce système d'autoscale donc je tatonne. Mais ça ne doit pas être compliqué donc je m'y pencherai bientôt.

Pour les boutons, je voudrais que le premier de la ligne m'envoie vers une "page 1" qui sera une page "type"pré-remplie que l'élève aurait à remplir. Ce serait sa page avec son nom, visible et éditable par tout le monde.
Ainsi le bouton de la ligne suivante renvoie vers une "page 2" pour un autre élève.
Le bouton 3 vers une page 3 etc.

Et les pages se créent comme ça à l'infini, à chaque fois qu'un élève veut en créer une.

Voilà le principe de ce que je veux faire, c'est "le cadavre exquis" en dessin mais appliqué à l'écrit : un élève commence par écrire une phrase sur un thème, puis un autre écris une phrase à la suite, puis un autre, puis un autre etc, jusqu'à temps d'avoir un texte d'une dizaine de lignes.
Voici des exemples : http://www.lecadavreexquis.com/
 

klaus

Expert
Licensed User
Longtime User
Quelles sont les données à manipuler ?
Et comment penses-tu les organiser, afficher et mémoriser.
Tu dois réfléchir en détail à la structure de tes données et comment les gérer.
Lorsque tu auras une vision précise sur ce point tu peux réfléchir sur la structure du programme.
A mon avis tu devrais gérer les données dans une base de données.
Est-ce que la structure des données par élève est la même ?
Si oui, en ayant les données structurées par élève tu n'aurais besoin que d'un seul écran que tu remplis avec les données de l'élève sélectionné avec le bouton.
 

Namzzaj

Member
Licensed User
Longtime User
Il n'y a que du texte à sauver.
Je reprends :

quand un élève ouvre le programme, il a le choix :
- soit il créé un nouveau texte en entrant son nom, sa classe, le titre de son texte
- soit il décide de continuer celui d'un autre.

Quoi qu'il arrive, il clique sur le bouton en face de la ligne choisie.

J'aimerai donc que ce bouton l'emmène vers:
- soit son texte qu'il va créer
- soit la suite de ce qu'un autre à commencer.

Pour ce qui est du texte à créer, je pense l'organiser en 10 lignes de edtText. (Puisque je vais brider un texte à 10 lignes)
Celui qui créé écrit sur la première ligne, et ceux qui veulent contribuer sur les suivantes.

Donc :
- quand un élève veut créer un texte, le bouton doit le renvoyer vers une page munie que d'edtText vierges.
- quand il veut continuer un texte, le bouton le renvoi vers la page sauvegardée par un élève auparavant.

En gros, quand un élève sort du programme, son texte doit être sauvegardé.

CQFD :D
 

klaus

Expert
Licensed User
Longtime User
Tu dois avoir un écran d'entrée sur lequel l'élève s'identifie pour que le programme sache qui est entré.
Après, lorsqu'il clique sur un bouton le programme doit vérifier si c'est sa ligne ou celle d'un autre et en fonction de ça initialiser l'écran d'édition des 10 EditText. Lors de la sortie de l'écran d'édition mettre à jour la base de donné.
 

Namzzaj

Member
Licensed User
Longtime User
C'est pas pratique ça...
Je peux pas juste faire un edtText où l'élève entre son nom quand il a ajouté sa ligne ?
Peu importe qui rentre.
 

Namzzaj

Member
Licensed User
Longtime User
Il rentre son texte et dans un autre edtText à côté, il rentre son nom. Ca me paraît beaucoup plus simple pour à réaliser.
 

Namzzaj

Member
Licensed User
Longtime User
J'hésite maintenant...
J'ai fais un schéma qui pourrait convenir. En PJ.

Dans le 4, j'aimerais qu'en cliquant sur le titre (qui devra s'éditer automatiquement quand l'élève l'entrera dans 5), l'utilisateur soit amené à ce texte.
et que lorsqu'un utilisateur clique sur un titre vierge, il soit redirigé vers une page prête à l'emploi....

En plus il faut que tous les textes apparaissent pour tous les utilisateurs.

:p:D
 

Attachments

  • 001 (Copier).jpg
    001 (Copier).jpg
    59.3 KB · Views: 310

klaus

Expert
Licensed User
Longtime User
Commentaires sur ton schéma:
1) Inutile pour moi, peut être combiné avec 2) 3).
2) 3) Tu peux combiner ces deux écrans en un avec deux Spinners un pour les classes et un pour les noms.
Lorsque l'élève sélectionne une classe le Spinner Noms et mis à jour.
Puis 4) et 5).
 

Namzzaj

Member
Licensed User
Longtime User
Bonjour

J'ai ajouté un spinner donc. C'est pas mal et ça correspond à ce que je cherche pour faire la 2e page.

Est-ce que les lignes "Classe1", "classe2" etc sont modifiables par l'utilisateur. J'aimerais que par un click long il puisse modifier le nom de sa classe ou l'ajouter.

Ensuite, j'aimerais que selon la classe selectionnée, s'affiche un autre spinner (ou scrollview) qui n'affiche que les élèves de la classe.
Le spinner2 devra pouvoir se mettre à jour également et que l'élève enregistre son prénom.
Ce qu'il me manque en fait ça doit être une commande de type SI classe2 est selectionnée alors spinner2.initialize ou un truc dans le genre. Mais ça impliquerait un spinner pour chaque classe selectionnée...?

j'ai toujours ce problème de création d'une base de donnée qui pourrait enregistrer les noms des élèves et leurs textes. Comment fait-on??

Je commence à me perdre dans tout ça
 

Attachments

  • essai1.zip
    11.8 KB · Views: 307

klaus

Expert
Licensed User
Longtime User
Est-ce que les lignes "Classe1", "classe2" etc sont modifiables par l'utilisateur. J'aimerais que par un click long il puisse modifier le nom de sa classe ou l'ajouter.
Directement dans le Spinner non.
Mais tu peux créer une Activity pour ça qui est appelée avec le LongClick.
L'utilisateur peut modifier voire ajouter son nom et retourner à l'Activity précédente et le Spinner sera automatiquement mise à jour puisqu'il sera recréé.
Ensuite, j'aimerais que selon la classe selectionnée, s'affiche un autre spinner (ou scrollview) qui n'affiche que les élèves de la classe.
Lorsque l'utilisateur sélectionne une classe il faut 'vider' le Spinner et le 'remplir' avec les noms des élèves de la classe sélectionnée. Pour trouver les élèves d'une classe donnée le meilleur moyen est une base de données où tu peux filtrer les données en fonction de différents critères.
j'ai toujours ce problème de création d'une base de donnée qui pourrait enregistrer les noms des élèves et leurs textes. Comment fait-on??
Il y deux exemples très basiques ici SQLiteLight Two simple SQLite projects.

As-tu déjà regardé le Beginner's Guide ? Sa lecture te serait sûrement utile.
Dans le User's Guide il y a un chapitre sur les Bases de Données avec des exemples.
Liens ci-dessous.

Dans ton code tu charges un fichier 'layout' dans lequel il n'y a rien et tu ajoutes des objets dans le code !?
As-tu une vision claire des données dont tu as besoin et comment les gérer ?
 

Namzzaj

Member
Licensed User
Longtime User
Merci pour tes réponses et ton aide Klaus. Ce n'est pas parce que je ne réponds pas de suite que je n'essaie pas.

Le "très basique" est déjà beaucoup trop compliqué pour moi. J'y passe un temps incroyable et je n'avance pas d'un poil. En 4 heures ce soir, je n'ai pas écrit une seule ligne et je me suis encore plus perdu avec sql.

Je cherche encore 2-3 jours et on verra bien! Après je balance tout =)
Comme disent les vieux: chacun son métier et les vaches seront bien gardées.
 
Top