|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Salut!
J'ai déjà cherché, mais je n'ai rien trouvé avec des critères aussi génériques... hypothèse: -> 1 layout A de la classe A.java -> 1 layout B de la classe B.java est ce qu'un bouton du layout B peut avoir 1 attribut onClick du genre ? A priori, d'après mes tests, non! Mais il y a peut être une syntaxe particulière... Merci.
|
|
|
00
|
|
|
#2 |
![]() ![]() |
Non non, c'est d'ailleurs impossible....
A quel objet de type "A" la fonction devrait être attachée ? L'attribut "onClick" du XML est géré pendant le setContentView, et utilise l'instance de l'activité en cours... Seules les méthodes publiques de cette instance peuvent être utilisées. Et puis de toute manière, coté "orienté objet" il y aurait là une dépendance entre la "vue" d'une activité et une autre activité ?
__________________
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !Et surtout
|
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Ca confirme ce que je pensais oui!
Du coup, c'était ma dernière idée pour gérer "ma" problématique du moment: 1) une barre d'outils au bas de toutes les activités s'enchaînant comme suit main -> fille1 -> fille2 -> fille3 -> fille4 2) barre qui pour le moment comporte un bouton de géoloc (android:onClick="geoloc") & un bouton d'accès aux favoris (android:onClick="favoris") 3) et les fcts java associées geoloc() & favoris() étant dans le main.java puisque pour le moment elle n'étaient appelées que depuis l'activité principale, et non les filles. Donc il faudrait que depuis la barre de fille3 on puisse lancer la géoloc par exemple... |
|
|
00
|
|
|
#4 |
![]() ![]() |
il suffit de faire hériter toutes les activtés d'une activité "parente" genre "ToolsActivity" qui va gérer la barre d'outils....
__________________
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !Et surtout
|
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Mes classes héritent déjà d'Activity et y a pas d'héritage multiple.
|
|
|
00
|
|
|
#6 |
![]() ![]() |
Ben quel est le problême ?
Activity | ToolsActivity | MainActivity, Fille1Activity, ....
__________________
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !Et surtout
|
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Et donc main, et fille1 -> 4 hériteront donc de ToolsActivity et non plus de Activity!
![]() Ok, au moins pour la théorie... je vais creuser ça parce que là tout de suite, la pratique elle, me semble pas gagnée... Ou tu aurais 1 tuto/url sous la main? |
|
|
00
|
|
|
#8 |
![]() ![]() |
Un tutoriel sur la programmation orientée objets ?
http://rmdiscala.developpez.com/cours/ Chapitre 5
__________________
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !Et surtout
|
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Non je pensais à un exemple de ce genre de toolbar, parce que là c'est flou dans l'application...... sans que je sache exactement ce qui est flou pour moi!
J'ai commencé hier: -> class Toolbar extends Activity -> class fille2 extends Activity est passé à class fille2 extends Toolbar -> et là Eclipse m'insultait dans la déclaration de fille2.java avec une erreur à propos du constructeur de Toolbar Sauf qu'en écrivant cette description ce matin, je me rends compte que je n'ai plus cette erreur de compil(?)... Mais bon, je continue de creuser... au pire je trouverai du pétrole!
|
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Mouais, d'après mes 1ers tests CT tout con en fait, je cherchais de nouveau trop compliqué.
Ca m'a l'air de pas mal marcher... mais ça m'évoque une autre question du coup! Comment expliquer? Contrairement à des fonctionnalités accessibles uniquement depuis l'activité MAIN, ici on a des fcts accessibles maintenant partout (MAIN+FILLEs)... l'utilisateur pouvant donc très facilement "boucler" dans le genre MAIN -> fille1 -> fille2 + toolbar favoris -> fille3 (favoris) + toolbar favoris -> fille3 (favoris) + toolbar favoris -> fille3 (favoris) + toolbar favoris -> fille3 (favoris) etc... Ce qui serait débile, je sais, mais un user reste un user... Ce qui à mes yeux peut poser 2 problèmes: -> les ressources empilées inutilement, voire même jusqu'à saturation? -> un nb incalculable d'appui sur la touche "précédent" pour revenir au MAIN |
|
|
00
|
|
|
#11 | ||
![]() ![]() |
Rien ne t'empeche de spécifier que chaque activité ne doit être présente qu'une fois dans la pile:
http://developer.android.com/guide/t...ent.html#lmode Ou sinon, de vérifier que l'activité courante n'est pas celle voulue (et ne rien faire dans ce cas là).... Un simple code du genre de (par exemple): Code :
Ou encore, utiliser un systeme d'ActionBar au lieu d'activités indépendantes.
__________________
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !Et surtout
|
||
|
|
00
|
|
|
#12 | ||||||||
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Je me pencherai là dessus oui.
Mais avant, j'ai encore parlé trop vite en disant que ça marche... ce qui est vrai, l'action sur les boutons fonctionne, mais je n'arrive pas à mettre à jour l'état des boutons (VISIBLE, DISABLED, GONE). Je n'ai pas trouvé la bonne formule. toolbar.xml Code :
Code :
Code :
Code :
-> ajout favoris: mettre le bouton favoris de la toolbar avec DISABLED par exemple -> juste pour tester une action sur l'état du bouton -> pour a terme pouvoir passer le bouton en GONE ou DISABLED par exemple lorsqu'il n'y a encore aucun favoris stocké MAIS: est-ce que ça passe 1.) par une commande dans le code de afficherdetails.ajouter_favoris()? OU 2.) par une méthode de la classe toolbar? En fait, j'ai essayé les deux, mais sans succès... Voilà, voilà. |
||||||||
|
|
00
|
|
|
#13 | ||
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
En fait, dès le départ c'est bizarre:
-> au lancement de AfficherDetails(), les méthodes de Toolbar() sont bien exécutées (grâce à l'héritage) Code :
-> les actions (GONE/VISIBLE) sont lancées........ et pourtant les 2 boutons persistent à rester afficher malgré le passage à GONE!
|
||
|
|
00
|
|
|
#14 |
![]() ![]() ![]() |
Bonjour,
Je n'ai pas tout suivi mais tu peux tenter de faire un invalidate après avoir mis à jour l'état de ton bouton. http://developer.android.com/referen...l#invalidate() Même si je n'y crois pas trop :s |
|
|
00
|
|
|
#15 | ||
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Ok, je vais essayer autrement.
En fait ce que j'essayais d'expliquer: 1.) au départ je pensais que le simple fait que AfficherDetails héritait de Toolbar suffirait à afficher ma barre (comme Toolbar.java lance un setcontentview du toolbar.xml) => non! 2.) j'ai donc rajouté l'include du layout de Toolbar dans celui de AfficherDetails => ma barre apparait bien, ok => les clics sont gérés, ok => sauf que je n'arrive pas à modifier les boutons (gone, visible, disabled) malgré que les méthodes de Toolbar soient lancées (logcat) 3.) c'est donc comme si ces actions (gone, visible, disabled) se faisaient MAIS sur les boutons de toolbar.xml, et non sur les boutons de l'instance de toolbar.xml incluse dans afficher_detail.xml -> serait-ce une explication? 4.) il faut donc que je puisse "pointer" ces objets là dans AfficherDetails.java, mais comment? -> en java normal je ferai un truc du genre; Code :
-> et je ne peux pas non plus accéder de manière static aux méthodes de Toolbar.java -> sans compter le point 3.) ci-dessus....... |
||
|
|
00
|
|
|
#16 | ||
![]() ![]() ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#17 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Je viens de refaire le test de l'include, et je confirme: dans afficher_details.xml, si je vire mon , ma barre n'apparait pas.
Toolbar.java (que je veux pouvoir utiliser dans toutes mes activités) charge toolbar.xml qui contient la définition des boutons dans un relativelayout AfficherDetails.java charge afficher_details.xml... qui lui même contient toolbar.xml via l'include Ou alors j'ai loupé un truc, conceptuellement? Pour moi AfficherDetails charge son layout..... ainsi que toolbar.xml, en "surimpression", via l'héritage... c'est pas ça? |
|
|
00
|
|
|
#18 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
Ou alors Toolbar.java.onCreate() ne doit pas faire un
mais plutôt inflater ce même layout au-dessus du layout principal de la page -> afficher_details.xml ICI -> mais sinon, dans le cas des mes autres activités, comment récupérer l'ID du layout de l'activité courante? |
|
|
00
|
|
|
#19 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
J'écume le net depuis ce matin et tu as raison, ce qui semblait logique!
-> ça devrait marcher exactement comme je l'ai fait et posté plus haut! -> Toolbar (avec ses méthodes) extends Activity + AfficherDetails extends Toolbar = affichage de la TB, sans include dans afficherèdetails.xml.............. -> mais ce n'est malheureusement pas le cas! Y a donc une c****** qq part dans le potage... ou plutôt dans mon code! La toolbar existe qq part, puisque ses méthodes sont lancées, appliquées & ne crashent pas (setcontentview, setTBgpsON/OFF, etc). Mais c'est comme si la toolbar elle était cachée, écrasée ou au second plan, par rapport à afficher_details.xml(??)........ |
|
|
00
|
|
|
#20 |
|
Membre régulier
![]() Inscription : mai 2012 Messages : 244 ![]() |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com