Aller au contenu

Voyage entre 2 layouts et "oubli" des boutons.


Profete162

Recommended Posts

Bonjour à tous,

Je vais tenter d'expliquer mon problème clairement en espérant que vous pourrez m'aider.

1) Je crée des boutons avec cette méthode trouvée dans un tuto. Cela fonctionne tres bien

Je crée une classe sur le côté qui exécute ce qui se passe sur les boutons et dans le "onCreate", je mets ceci:

                
OnMenuButtonClickListener menu_button_listener = new OnMenuButtonClickListener(this);
Button my_button = (Button) findViewById(R.id.my_menu_button);
my_button.setOnClickListener(menu_button_listener);

dans la classe:

    
Activity context;

public OnMenuButtonClickListener(    Activity  context) 
{
        this.context = context;
}

public void onClick(View v) 
{ 
       this.context.setContentView(R.layout.ecrandeux);
       Toast.makeText(this.context,"j'affiche ecrandeux",1).show();
}

2) Les soucis

a) si je lie ce code à un bouton d'un layout qui n'est pas main.xml -> ca crashe le programme

b) le code de l'écran main fonctionne. Si je change de layout ( par le menu, par exemple) et que je reviens sur le main.xml ensuite, je peux cliquer sur les boutons, il ne se passe plus rien

Est-ce que j'ai raté quelquechose d'important?

Merci et désolé pour le dérangement

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres sites

Si tu veux afficher une autre Activity (donc un écran totalement différent du premier) il vaut mieux que tu passe par un startActivity ou startActivityForResult et que tu créer une autre Activity (comme la première)

Ainsi son comportement sera géré à part dans un autre fichier, ça sera plus propre :)

Lien vers le commentaire
Partager sur d’autres sites

Ok, merci des conseils, ca m'a un peu découragé cette complexité pour faire 2 pages... je vais attendre gentillement le prochain tutos qui passe la dessus.. lol

Je ne voyais vraiment pas le développement aussi compliqué que cela! J'hallucine de savoir à quel point c'est compliqué de mettre une action sur un click de bouton!

Lien vers le commentaire
Partager sur d’autres sites

  • 5 weeks later...
Je ne voyais vraiment pas le développement aussi compliqué que cela! J'hallucine de savoir à quel point c'est compliqué de mettre une action sur un click de bouton!

Hmm ... (cf mon post)

<?xml version="1.0" encoding="utf-8"?>
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/bouton_vive_android"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:onClick="startActivityX"
   android:text="Vive Android!" />

public void startActivityX(View view) {
   startActivity(new Intent(this, MonActivity.class));
}

Tu trouve ça difficile ? (Y'a réellement 3 lignes de code qui résoudent ton problème) :)

Modifié par Cyril Mottier
Lien vers le commentaire
Partager sur d’autres sites

J'avais posté ce message en ne comprenant rien à rien.. J'ai énormément appris entretemps, mais ta technique est encore plus impressionante!

( mais on ne sait pas passer de paramètres à ton activiy avec cette méthode, si?)

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres sites

J'avais posté ce message en ne comprenant rien à rien.. J'ai énormément appris entretemps, mais ta technique est encore plus impressionante!

( mais on ne sait pas passer de paramètres à ton activiy avec cette méthode, si?)

Non mais tu peux utiliser le paramètre View passé à ta fonction pour savoir quoi faire du clic.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...