Comment appeler la méthode principale activité des autres activités?
Je veux l'appeler méthode publique dans l'activité principale de d'autres activités. Comment puis-je le faire?
class MainActivity extends Activity {
public void myMethod() {}
}
class MyActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//How can I call myMethod() in MainActivity?
}
}
- Ceci a été demandé plusieurs fois avant.
- Je veux savoir la façon de faire des appels non méthode statique. Je vais lire le lien.
- Le non de manière statique est dans ma réponse.
Vous devez vous connecter pour publier un commentaire.
Il dépend.
Dans le cas où si vous voulez juste utiliser une part de la fonctionnalité (à titre d'exemple le code qui fait un peu de calcul).
Je vous recommande de le déplacer cette fonctionnalité pour certains autonome de la classe et de l'appeler à partir de là.
Dans le cas si vous voulez l'appeler MainActivity, donc MainActivity fait quelque chose avec MainActivity de l'INTERFACE utilisateur, vous devrez utiliser l'Intention (http://developer.android.com/reference/android/content/Intent.html), parce que MainActivity devrait être reprise de la première, et seulement après cela qu'il peut faire quelque chose avec de l'INTERFACE utilisateur.
Dans ce cas, vous pouvez avoir besoin d'ajouter des suppléments à l'intention, qui sera analysé par MainActivity code (dans onCreate ou onResume) et d'appeler la méthode la plus appropriée.
Faire
static
, passer dans leactivity
, instancier, ou mieux encore, de repenser l'approche de la conception? Je ne pense pas que vous devriez être à l'appel d'une méthode dans un autreactivity
de votremain activity
- peut-être mieux de faire unnew class
?De Code Statique:
Instancier Activité:
Passer De L'Activité De Référence:
MainActivity.static method();
Comment appeler la méthode dans MainActivity à partir d'une autre activité RÉSOLU
Parfois vous ne pouvez pas faire de la méthode statique, car il dépend de tous les autres types de l'état dans votre MainActivity. En faisant toutes les dépendront également l'état statique revient à faire de tout global et ce n'est tout simplement pas une bonne idée.
Aussi il n'y a rien de mal à vouloir appeler un non-méthode statique sur le MainActivity - c'est comme une classe d'appeler un autre.
Voici ce que vous devez faire:
Votre Application est partagé entre toutes vos Activités (à condition qu'ils soient tous dans le même processus). Cette application peut être utilisée pour stocker l'état. Bien que d'une idée judicieuse serait juste pour stocker les instances de vos activités et de les laisser stocker leurs états respectifs, qui est ce que nous allons faire.
créer votre propre Application sous-classe:
public class MyApplication extends Application
{
MainActivity mainActivity;
}
Ajuster le manifeste:
<application
android:name=".MyApplication"
...
Dans MainApplication initialiser
MyApplication.mainActivity
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
MyApplication ma = (MyApplication)getApplication();
ma.mainActivity = this;
...
dans
OtherActivity
récupérer le MainActivity instance.private MainActivity mainActivity;
mainActivity.someMethodOnMainActivtiy();
Déclarer myMethod() static.
L'appeler n'importe où dans votre application par
MainActivity.myMethod();
Si vous avez des méthodes statiques pour l'appel de toute activité que vous devriez avoir une Utililty ou une Classe d'aide où vous pouvez appeler les méthodes staticly à partir de n'importe où, je ne pense pas que c'est une bonne pratique de l'abeille caling méthodes statiques sur un activyty à l'autre
Voici un Exemple d'une Classe d'assistance