peut être son trop simple mais je ne pouvais pas trouver le bon chemin.Java onCreate avec paramètre comme dans initWithParameter C++
En C++, je peux écrire initWithParameter: xxx
pour instancier une classe, puis dans l'init certaines variables d'instance étant donné la valeur au moment de l'initialisation.
En Java, je ne sais pas comment faire cela. Actuellement, je fais ce qui suit:
public class SpecialScreen extends BASEScreen{
private static final int ACTIVITY_1 = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //create the instance
defineScreenType (ACTIVITY_1); //second call to set the instance variable
presentOnScreen();
}
Alors que dans BASEScreen:
public class BASEScreen extends Activity {
private Integer activityCode; // which activity should I do?
@Override
public void onCreate(Bundle savedInstanceState) { // the creation
super.onCreate(savedInstanceState);
}
// the setting of the instance variable
public void defineScreenType(int screenID) {
activityCode = screenID;
}
Ce ne peut pas être la meilleure façon de le faire. Comment faire mieux?
Merci
AJOUTÉE pour montrer l'appel du SpecialScreen au sein BASEScreen:
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
Intent i;
switch (item.getItemId()) {
case OTHER_PAGE_ID:
//
if (activityCode == ACTIVITY_1) {
i = new Intent(this, SpecialScreen2.class);
i.putExtra("Task", ACTIVITY_2);
startActivityForResult(i, ACTIVITY_2);
finish();
} else {
i = new Intent(this, SpecialScreen1.class);
i.putExtra("Task", ACTIVITY_1);
startActivityForResult(i, ACTIVITY_1);
finish();
}
return true;
ps je sais que mettre Extra n'est plus nécessaire. C'était la façon dont je l'ai fait avant que j'avais les deux sous-classes SpecialScreen et toujours appelé BASEScreen avec ce paramètre.
Détesté comme une question android, car c'est ce qu'il semble être. –
@ user387184: Qu'essayez-vous de faire? Quelque chose comme 'utilisateur appuie sur le bouton 1, démarrer l'activité 1', 'utilisateur appuie sur le bouton 2, démarrer l'activité 2'? Commencer différentes activités en fonction du choix de l'utilisateur ou d'une autre condition? – Squonk
oui c'est vrai – user387184