Aller au contenu

Création d'un custom Button lancant une Activity automatiquement


nogema

Recommended Posts

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

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...