Je suis un nouveau à Java et Android. Je travaillais sur ma propre application, mais j'ai un problème dans la transmission d'une méthode de l'activité A à l'activité B.
Voici ce que j'ai fait: p>
Activity a une méthode de démonstration (). P>
public class External { private ActivityA activitya; private static External instance = null; public External(ActivityA activitya) { this.activitya = activitya; } static public External getInstance(ActivityA activitya) { if (instance == null) { instance = new MyntraExternal(activitya); return instance; } else { return instance; } } }
4 Réponses :
Depuis que vous êtes nouveau à Android, je vous dirai que ce sera une mauvaise pratique des méthodes d'appel de l'activité A à B ou inversement, vous pouvez transmettre des paramètres d'une activité à une autre à l'aide d'introduits et de faisceaux et si vous avez besoin de passer des paramètres de La deuxième activité à la première fois que vous devez utiliser la méthode de remplacement sur l'onactivitéRésults
Voici un lien utile sur le passage des paramètres d'une activité à une autre: https://www.dev2qa.com/passing-Data-between -Activités-Android-Tutorial / Dans ce lien, vous pouvez voir un exemple de la façon dont les choses fonctionnent. P>
espère que cela aide. P>
- Edit (Si vous devez appeler une fonction de B à un au cas où vous le souhaitez. Pour changer quelque chose dans une création lors de la création, c'est le moyen le plus simple et le plus simple de le faire): p>
dans l'activité B: p> dans l'activité A:
Oncreate: p>
Activityb est ma classe de lanceur et je veux un accès à partir de la méthode de Activity dans ActivityB. Que faire ?
Pourquoi avez-vous besoin d'y accéder, pouvez-vous me dire la fonctionnalité de mieux vous aider?
Pouvez-vous simplement me dire que comment puis-je accéder à la méthode d'activité dans l'activité et l'activité est également ma classe de lancement.
Ok théorie sage, l'application est lancée et l'activité B est ouverte, l'activité A n'est pas ouverte, vous ne pouvez donc pas accéder à cette fonction et si l'activité A est créée, vous ne serez pas dans l'activité B pour accéder à une fonction d'activité A, donc vous besoin de faire cette fonction dans l'activité une statique afin que vous puissiez appeler cela ce qui n'est pas une bonne pratique, ou vous devez mettre la fonction dans l'activité B et l'utiliser à partir d'ici (si vous me dites quel est votre objectif et pourquoi avez-vous besoin de Accédez à cette méthode dans l'activité A de votre lanceur, je peux mieux vous aider)
Si cette fonction fonctionne comme une configuration dans l'activité A, le meilleur moyen est de passer des paramètres de B à un (je modifierai ma réponse pour vous montrer comment)
Faites de cette méthode publique et statique, puis d'y accéder en utilisant le nom de la classe. par exemple. Dans votre 2e activité, utilisez ACTIVITYB.DEMO () P>
Essayez d'utiliser starTActivityForresult
pour démarrer l'activité B de l'activité A P>
setResult(Activity.RESULT_CANCELED) finish()
Veuillez essayer de cette façon
public class ActivityA extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void demo() { // Do something } } public class ActivityB extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActivityA activityA = new ActivityA(); // create object activityA.demo(); // } }
Veuillez spécifier votre problème avec précision.
Vous n'appelez pas la méthode ou une autre activité. Il existe plusieurs façons de fournir un délégué.
localBroadcast code>,
eventbus code>,
startactivityforresult () code>. Utilisez simplement n'importe lequel qui répondent à votre condition.
@Adm pouvez-vous s'il vous plaît me fournir un exemple?
@Saketkumar Plays Regardez ceci Répondre
Regardez la leçon StarTandroid.ru/ EN / LEÇONS / ...
Vous pouvez
étendre code> votre activité
code> à partir de
activité code>.