nogema Posted November 24, 2010 Share Posted November 24, 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 Link to comment Share on other sites More sharing options...
Pierre87 Posted November 25, 2010 Share Posted November 25, 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 Link to comment Share on other sites More sharing options...
nogema Posted November 26, 2010 Author Share Posted November 26, 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 ! Link to comment Share on other sites More sharing options...
Pierre87 Posted November 27, 2010 Share Posted November 27, 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 Link to comment Share on other sites More sharing options...
nogema Posted November 30, 2010 Author Share Posted November 30, 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: ) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.