Les questions / réponses (transmettre les données en Intent
passée de startActivity()
) montrent la voie normale pour résoudre ce problème. Il y a une autre solution qui peut être utilisé dans l'étrange cas où vous êtes en train de créer une Activité qui sera lancé par une autre application (par exemple, l'une de l'édition des activités dans un Tasker plugin) et, par conséquent, ne contrôle pas l' Intent
qui lance l' Activity
.
Vous pouvez créer une classe de base Activity
qui possède un constructeur avec un paramètre, puis une classe dérivée qui a un constructeur par défaut qui appelle à la base le constructeur de la classe avec une valeur, comme suit:
class BaseActivity extends Activity
{
public BaseActivity(String param)
{
// Do something with param
}
}
class DerivedActivity extends BaseActivity
{
public DerivedActivity()
{
super("parameter");
}
}
Si vous avez besoin de générer le paramètre à passer à la base le constructeur de la classe, il suffit de remplacer la valeur codée en dur avec un appel de fonction qui renvoie la valeur correcte de passer.