French Pages multiples

JPP

Member
Licensed User
Longtime User
Bonjour, encore moi...

Toujours mon souhait de transposer mes applications VBA Excel sur smartphone.
Sous Excel, j'affichais et cachais plusieurs "userforms" (par exemple, sur la page initiale, un bouton "Aide" affichait une autre "userform" contenant cette aide, avec bouton de retour à la page d'appel).

Avec B4A, j'imagine que cela se fait en préparant plusieurs "Activity", et en passant de l'une à l'autre par des "show" ou autre.
N'ayant pas vu de description précise dans les guides, quelqu'un peut-il me donner un exemple simple de deux pages entre les quelles ont peut circuler par les boutons (donc les commandes) appropriés ?

Ce serait super !
Merci,
JPP
 

JPP

Member
Licensed User
Longtime User
Merci !
Que ferais-je sans Klaus !
Non, je n'avais pas encore regardé, d'abord par manque de temps, et aussi (surtout) parce que je ne savais pas trop sur quels termes demander, entre les "activities", les "layouts" et les "panels" !
Mais maintenant, j'y vois plus clair, et ces exemples vont me mettre sur la rampe de lancement.
À bientôt, sûrement !
JPP
 

JPP

Member
Licensed User
Longtime User
Bonjour,

Encore moi avec mes pages multiples.
En m'appuyant sur les exemples fournis par Klaus, j'ai bâti mon application, qui - pour faire simple - fait ceci :
- démarrage sur une page d'accueil, qui contient quelques labels et un bouton [Aide]
- en cliquant sur [Aide], je fais ceci:
B4X:
Sub btnaid_Click
    RemoveViews    'la routine pour effacer toutes les views
    Activity.LoadLayout("Aide")
    lblaid.Text = "Là, le baratin d'aide..." & CRLF &  "Appuyer sur ""Retour"" pour revenir à l'application."
End Sub

Ca marche.
Et si je clique sur [Retour], idem :
B4X:
Sub btnret_Click
    RemoveViews    'la routine pour effacer toutes les views
    Activity.LoadLayout("Accueil")
    lblacc.text = " ce qu'il y a sur cet écran... etc."
    Dateheure     'routine d'affichage de la date et de l'heure
End Sub

Tout ça marche fort bien, mais je me demande comment faire de façon plus simple si le contenu du label de la page d'accueil fait 20 ou 30 lignes ?
Il faut le répéter une fois au moment de l'Activity_create, et encore au niveau du bouton retour ?

Ne peut-on pas éviter d'effacer la page d'accueil, sur laquelle la page d'aide vient se plaquer, n'effacer que la page d'aide pour laisser réapparaître ensuite la page d'accueil "stable" ?

Faut-il initialiser les labels par un petit "sub" que l'on appelle chaque fois que nécessaire, plutôt que de retaper toutes les lignes ?

Est-il possible de stocker le contenu du label dans un petit fichier que l'on appelle si besoin ?

Il y a sûrement d'autres possibilités, mais je suis encore bien ignorant...

Merci d'avance,
JPP
 

klaus

Expert
Licensed User
Longtime User
Pour pouvoir t'aider de manière concrète il aurait été plus simple si tu avais posté un projet montrant le problème.
Je ne comprends pas exactement le problème.
Le principe de gestion de différentes pages que tu as choisi est pour moi le moins bon.
Mais sans savoir ce que tes différentes pages doivent afficher et gérer il est difficile de donner des conseils pertinents.
Sur le principe, Android est, à l'origine, base sur l'utilisation d'Activities. Pour chaque layout une Activity.
Ce qui est un peu perturbant si ont vient du monde Windows où on travaillait avec les Forms (c'était aussi mon cas, VB en particulier).
Les dernières versions d'Android passent plutôt à la gestion de différents Panels (ActionBar etc.) et non plus avec toute une série d'Activities.
Donc, pour ton cas et ce que j'en ai compris, je définirais des Panels avec chacun un layout au lieu de supprimer tout les objets et charger un nouveau layout.
Puis rendre visible celui qu'on veut afficher.
Par la suite, si une page n'est plus nécessaire, on peut simplement supprimer le Panel correspondant.
 

JPP

Member
Licensed User
Longtime User
Merci Klaus,
Je pensais bien que l'envoi de mon projet aurait simplifié la chose, mais il est tellement encore dans les limbes...
Ce dont je parlais juste avant était basé sur ton exemple "TwoActivityLayouts"
Mais je comprends maintenant qu'avec l'exemple "TwoPanelActivity" ce sera mieux...

Il faut un temps d'adaptation, comme tu dis, pour comprendre l'articulation layout, activity, panel, etc...
Je vais travailler sur la nouvelle formule et te dirai.
JPP

[PS "off record" : j'ai récupéré des photos prises à l'occasion du 150e anniversaire de l'ascension du Matterhorn. Les as-tu vues ? Un lien pour te les envoyer "hors forum" ?]
 

klaus

Expert
Licensed User
Longtime User
Tu peux m'envoyer le lien dans un mail privé dans le forum.
Dans le coin supérieur droit tu trouves un petit texte Inbox, cliques dessus et démarres une Conversation.
J'avais fait les 4 exemples surtout pour montrer les différentes possibilités dans Android, je ne me rappelles plus si j'avais donné des indications de préférences.
La 'philosophie' de Google pour le système Android a probablement aussi changée depuis l'avènement des tablettes.
 
Top