nogema Posté(e) 24 novembre 2010 Posté(e) 24 novembre 2010 Bonjour, J'ai actuellement un calendrier maison sous forme d'Activity qui marche très bien. :lol: Je peux donc lancer l'Activity depuis un bouton normal via ce code : btn = (Button) findViewById(R.id.btnChoixDate); btn.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(FichePatient_GUI.this, Calendar_GUI.class); final String dateNaiss = ((Button) findViewById(R.id.btnChoixDate)).getText().toString(); if (dateNaiss.length() == 10) { i.putIntegerArrayListExtra("date", new ArrayList<Integer>() {{ add(Integer.parseInt(dateNaiss.substring(0, 2))); add(Integer.parseInt(dateNaiss.substring(3, 5))); add(Integer.parseInt(dateNaiss.substring(6, 10))); }}); } startActivityForResult(i, REQ_DATE_NAISS); } }); Et récupérer le résultat comme ceci : @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Button btn; if (resultCode == RESULT_OK) { switch (requestCode) { case REQ_DATE_NAISS: btn = (Button) findViewById(R.id.btnChoixDate); Bundle infosDate = data.getExtras(); btn.setText(infosDate.getString("jour") + "/" + infosDate.getString("mois") + "/" + infosDate.getString("annee")); break; } } } Je souhaite maintenant faire un custom Button qui ferait tout tout seul. public class CalendarButton extends Button { ... } En gros, j'appuie sur ce bouton, il m'affiche l'écran de sélection comme un grand et ensuite il défini le texte du bouton avec la date. B) Je souhaiterais ne plus avoir le code ci-dessus dans mon Activity principale, mais tout mettre dans mon custom Button. Je pense pouvoir lancer mon Activity calendrier sans trop de problème mais comment récupérer le résultat du calendrier depuis mon custom Button ??! :/ Merci
Pierre87 Posté(e) 25 novembre 2010 Posté(e) 25 novembre 2010 tu as mis le doigt dessus, ce n'est pas simple :P le plus simple selon moi, est de le récupérer dans l'Activity qui gère ton Button... même si tu as du code redondant :P
nogema Posté(e) 26 novembre 2010 Auteur Posté(e) 26 novembre 2010 Ok merci ! Je vais donc garder mon onActivityResult() dans l'activité principale, et appeler une fonction du bouton perso pour mettre à jour les infos si l'Id est correct :P Etonnant quand meme de pas arriver à faire ce genre de chose qui me semble "basique" (pour un programmeur vb.net c'est normal :D ) Si quelqu'un a une autre piste je suis preneur !
Pierre87 Posté(e) 27 novembre 2010 Posté(e) 27 novembre 2010 un autre solution consiste à avoir une Activity invisible dédié à la récupération du résultat, et qui stockera temporairement le résultat de manière static
nogema Posté(e) 30 novembre 2010 Auteur Posté(e) 30 novembre 2010 Bon ben j'ai réussi a peu près ce que je voulais assez simplement finalement, je n'ai pas trop de redondance de code :P Pour l'Activity invisible ... déjà je n'ai aucune idée de comment faire et finalement je pense que c'est alourdir l'ensemble. Pis ca me parait pas chouette comme solution (bien que j'y ai pas mal pensé avant :lol: )
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.