nogema Posté(e) 24 novembre 2010 Share 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 25 novembre 2010 Share 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
nogema Posté(e) 26 novembre 2010 Auteur Share 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 27 novembre 2010 Share 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
nogema Posté(e) 30 novembre 2010 Auteur Share 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: ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.