Android instruction du cas de l'aide
J'essaie de faire de mon cas de déclaration d'ouvrir une classe différente en fonction de ce bouton est pressé. J'ai eu ce travail d'amende pour un bouton, mais je suis pas sûr de la façon de procéder pour les deux boutons.
Voilà mon code pour l'instant:
public void onClick(View v) {
switch (v.getId()) {
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;
case R.id.reminderList_button:
Intent i = new Intent (this, ReminderListActivity.class);
startActivity(i);
break;
}
}
Cela donne une erreur parce que je suis de réutiliser la variable locale (i) - si quelqu'un pourrait me permettre de savoir comment le faire correctement, il serait très apprécié.
OriginalL'auteur user319940 | 2010-12-21
Vous devez vous connecter pour publier un commentaire.
Vous pouvez déclarer la variable
i
avant de l'instruction switch. C'est surtout préférable à "portée" si vous prévoyez d'utiliser la variablei
après l'instruction switch:Oui, comme je l'ai dit: si vous voulez utiliser la variable
i
plus tard, après l'instruction switch, alors vous ne serez pas en mesure de le faire si vous avez faiti
local de la portée à l'intérieur de l'instruction switch. Et peu importe, vous aurez moins de code dupliqué si vous vous déplacezstartActivity(i)
après l'instruction switch, trop. 🙂Plus sujettes à l'erreur si vous ne le manipulez pas le cas par défaut. Assurez-vous d'initialiser et de vérifier, au moins.
Ouais ça par une erreur ce n'est pas initialisé, donc j'ai juste fait = null semble fonctionner OK. Merci :).
Vous devez toujours vérifier la valeur null avant de l'utiliser, ou d'autre de votre application va planter si getId() renvoie quelque chose que vous n'avez pas à traiter.
OriginalL'auteur Victor Zamanian
Portée.
Mon humble avis: À ce point, il serait plus lisible de créer des méthodes startAboutActivity(), startReminderListActivity()... etc.
OriginalL'auteur EboMike