Souvent quand on développe une application sous android, au début on a tendance à tout mettre dans la même classe. Le problème avec cette méthode de réalisation d’appli c’est le bouton retour du téléphone, quand on l’utilise on sort complètement de l’application au lieu de revenir à la fenêtre précèdente.
Pour éviter cela il faut utiliser une Activity pour chaque fenêtre.
Dans ce tuto je vais réaliser une petit application permettant de naviguer entre deux fenêtres à l’aide d’Activity, en passant également une variable entre ces deux fenêtres.
Dans chaque fenêtre j’aurais un bouton et un champ de texte, j’utilise donc le même fichier xml pour les deux.
Je vais créer maintenant mes deux classes qui sont deux fenêtres différentes FenetreClass1.java et FenetreClass2.java
FenetreClass1.java
public class FenetreClass1 extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fenetre);
//récupération du text dans le champ de saisie
final TextView textchampsaisie = (TextView) findViewById(R.id.text);
Button btaction = (Button) findViewById(R.id. btecrire);
//action sur le bouton click appelle de la nouvelle activité
btaction .setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
//création de notre item
Intent defineIntent = new Intent(lecontext, FenetreClass2.class);
// objet qui vas nous permettre de passe des variables ici la variable passInfo
Bundle objetbunble = new Bundle();
objetbunble .putString("passInfo",textchampsaisie..getText().toString());
// on passe notre objet a notre activities
defineIntent.putExtras(objetbunble );
// on appelle notre activité
lecontext.startActivity(defineIntent);
}
});
}
}
Récupération des informations passées par la classe FenetreClass1.class à la classe FenetreClass2.class
public class FenetreClass1 extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fenetre);
//récupération du text dans le champ de saisie
final TextView textchampsaisie = (TextView) findViewById(R.id.text);
Bundle objetbunble = this.getIntent().getExtras();
// récupération de la valeur
String InfoPasse= objetbunble .getString("passInfo");
// on afffiche l'information dans l'edittext
textchampsaisie .setText(ingredient);
}
}
Ensuite le plus important, déclarer ces différentes activity dans le fichier AndroidManifest.xml
Il est temps de mettre à profit les tutoriels d’Android France:
Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications rendez-vous sur notre boutique Android-france pour ces formations en vidéo