splifou Posté(e) 22 mars 2010 Share Posté(e) 22 mars 2010 Bonjour, Comment créer deux boutons fonctionnels sous eclipse ? Un pour lancer un intent et l'autre pour quitter l'application ? J'en suis à ce code : import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class Entry extends Activity implements View.OnClickListener { private Button mButton; private Button lButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.entry); mButton = (Button)findViewById(R.id.mbutton); mButton.setOnClickListener(this); } @Override public void onClick(View view) { if (view == mButton) { Intent intent = new Intent(Entry.this, GoogleSearch.class); startActivity(intent);} } } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 22 mars 2010 Share Posté(e) 22 mars 2010 (modifié) Efface ton public void onClick et remplace le par ceci dans ton onCreate: mButton.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(Entry.this, GoogleSearch.class); startActivity(intent);} }); iButton.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { finish(); } }); Sinon, il y a moyen de faire cela plus proprement en mettant tous les comportements de onClick dans un fichier java à part, mais je te laisse découvrir d'autres Tutos. Hésite pas à en ouvrir plus, et tester ceux inclus avec le SDK, c'est une mine d'informations. Modifié 22 mars 2010 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
splifou Posté(e) 22 mars 2010 Auteur Share Posté(e) 22 mars 2010 Merci ! Alors j'avais une erreur avec ma première ligne public class Entry extends Activity implements que j'ai remplacé par public class Entry extends Activity et j'ai aucune erreur par contre j'ai pas de launcher. Quand je l'émule il n'ouvre pas l'application et y'a marqué pas de launcher dans la console. Voilà ce que j'ai comme code : public class Entry extends Activity { private Button mButton; private Button lButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.entry); mButton.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(Entry.this, GoogleSearch.class); startActivity(intent);} }); lButton.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { finish(); } });}} Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 22 mars 2010 Share Posté(e) 22 mars 2010 (modifié) Ecoute.. la ca devient grave... 1ere étape: regarder le logcat: il va te dire que tu as un objet nul à la ligne X de ton programme. Cette ligne correspondra à mButton.setOnClickListener. ( je suis pas prophète pour rien, je lis dans le futur...) 2eme étape: apprendre les bases les plus simples du java avant de foncer dans la prog. 3eme étape: comprendre.... Tu as ton bouton et tu veux lui adjoindre un clicklistener. C'est simple! Dans ton premier code tu dis en 2 étapes: private Button mButton; mButton = (Button)findViewById(R.id.mbutton); mButton.setOnClickListener(); Ce qui fonctionne! Dans la seconde partie tu dis: private Button mButton mButton.setOnClickListener() Comment veux tu que ton programme sache ce que c'est mButton???? Il faut lui dire avant "mButton est le bouton qui est sur mon layout à tel endroit" C'était ma réponse gentille et apres, je t'invite à lire un peu avant de reposer une autre question du même type. Modifié 22 mars 2010 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nivek Posté(e) 22 mars 2010 Share Posté(e) 22 mars 2010 Pour le launcher, as-tu déclaré l'intent-filter correspondant ? http://developer.android.com/guide/topics/fundamentals.html#ifilters Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
splifou Posté(e) 22 mars 2010 Auteur Share Posté(e) 22 mars 2010 (modifié) Merci Nivek j'ai rajouté les lignes qui me manquait dans mon manifest donc maintenant je saurai comment faire car c'est pas la première fois que j'ai ce problème. Avant je recommancait le projet à 0 ! Sinon prophete j'avoue que j'y connais rien en programmation je suit les tutos. J'ai suivit des cours java aussi mais c'était vraiment différent. Avec un if else j'aurai pas de problème pour mes deux boutons. Avec ce que tu m'as dit j'ai écrit ça : public class Entry extends Activity { private Button mButton; private Button lButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.entry); mButton = (Button)findViewById(R.id.mbutton); mButton.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(Entry.this, GoogleSearch.class); startActivity(intent);} }); lButton = (Button)findViewById(R.id.mbutton); lButton.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { finish(); } });}} Le résultat est que l'application ne plante pas par contre le bouton cliquer pour démarrer quitte l'application et celui pour quitter ne fait rien. Avec le code du premier message j'arrivais en remplacant la dernière ligne par lbutton et par l'action finish à faire quitter avec le bouton quitter par contre j'arrive pas à créer une deuxième action. Modifié 22 mars 2010 par splifou Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nivek Posté(e) 22 mars 2010 Share Posté(e) 22 mars 2010 (modifié) lButton = (Button)findViewById(R.id.mbutton); Modifié 22 mars 2010 par Nivek Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
splifou Posté(e) 22 mars 2010 Auteur Share Posté(e) 22 mars 2010 Vous assurez franchement. Juste [color=red]jsuis[/color] fatigué donc j'ai pas fait gaffe et ça règle tout. Tout fonctionne nickel comme je voulais. Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nivek Posté(e) 22 mars 2010 Share Posté(e) 22 mars 2010 Juste [color=red]jsuis[/color] fatigué donc j'ai pas fait gaffe et ça règle tout. Règle n°1 : ne pas programmer fatigué :P Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.