-1
votes

Activité d'appel Une méthode de l'activité B Android

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;
        }
      }
   }


6 commentaires

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 , eventbus , startactivityforresult () . 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 votre activité à partir de activité .


4 Réponses :


2
votes

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.

espère que cela aide.

- 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):

dans l'activité B: xxx

dans l'activité A: Oncreate: xxx


5 commentaires

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)



1
votes

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 ()


0 commentaires

0
votes

Essayez d'utiliser starTActivityForresult

pour démarrer l'activité B de l'activité A P>

        setResult(Activity.RESULT_CANCELED)
        finish()


0 commentaires

0
votes

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();  // 
  }
}


0 commentaires