0
votes

Obtenir des données de l'appel de modernisation et envoyez-la à une autre activité

Je dois envoyer le détail lorsque je clique sur un élément d'un article dans un recyclerview à une autre activité.

// Here I call my service
public void getContactoById(Integer id) 
{
    apiManager.getContactoById(id).
            enqueue(new Callback<Contacto>() {
                @Override
                public void onResponse(Call<Contacto> call, Response<Contacto> response) {
                    if (response.isSuccessful()) {
                        // ???????? How send from here to 2nd Activity
                    }
                }

                @Override
                public void onFailure(Call<Contacto> call, Throwable t) {
                    Throwable x = t;
                }
            });
}

// In second Activity, I need to fill these controls with the values obtained from the service call
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_detail_contact);
  Service.getInstance().getContactoById(Integer.valueOf(contacto.getUserId()));

    imgFoto = (ImageView) findViewById(R.id.imgFoto);
    tvNombre = (TextView) findViewById(R.id.tvNombre);
    tvPhoneHome = (TextView) findViewById(R.id.tvPhoneHome);
    tvPhoneCellphone = (TextView) findViewById(R.id.tvPhoneCellphone);
    tvPhoneOffice = (TextView) findViewById(R.id.tvPhoneOffice);
    tvBirthDate = (TextView) findViewById(R.id.tvBirthDate);
}


3 commentaires

Bonjour Andrew, c'est facile, il suffit d'utiliser des données Pass avec une interface ...


Avez-vous des liens avec des exemples? Merci beaucoup pour votre réponse.


Absolument oui, attendez un moment, je vous envoie un exemple de code, votre accueil!


5 Réponses :


1
votes

C'est mon dernier projet et je souhaite vous aider:

Créer un adaptateur pour votre RecyclerVoir, comme ci-dessous: xxx

}

et dans votre activité: xxx


4 commentaires

Qu'est-ce que APIInterface, c'est une classe personnalisée? Quel était votre objectif dans ce projet? Envoyer des détails de l'adresse à une autre activité? Merci!


APIINTORFACE est la classe Qui je définis les méthodes requises pour l'utilisation de la modernisation, son application de livraison alimentaire dans le travail en Iran, oui, c'est votre accueil


Si vous souhaitez apprendre à la modernisation, je vous suggère de visiter ce site Web: Futuresttud .io / Tutoriels / ...


Merci pour tout, je vais essayer cette solution.



0
votes

Autre façon, vous pouvez utiliser quelque chose comme

Intent intX=new Intent(this, otherActivity.class);
intX.putExtra("stringextra1","value extra1");
intX.putExtra("stringextra2","value extra2"); 
intX.putExtra("stringextra_x","value extra_x");
startActivityForResult(intX, 0);


0 commentaires

0
votes

Utilisez Bundle

en activité1, transmettez les données: xxx

inactive2, récupérez les données: xxx


2 commentaires

Le problème est que les valeurs de la première activité sont obtenues de manière asynchrone par appel de rénovation, plusieurs secondes après le début de la deuxième activité.


Donc, doit commencer l'activité 2 dans @override publique annulité surResponse



0
votes

Créer une liste de matrices et à ce moment-là, vous récupérez les données de l'API, ajoutez-la à une arracheListe. Après cela dans votre adaptateur, utilisez des données de cette arracheList pour envoyer des données d'une activité à une autre activité.

tv_title.setOnClickListener(new View.OnClickListener() {
       @Override
        public void onClick(View v) {
            Intent i = new Intent(mContext,WebviewActivity.class);
                  i.putExtra(INTENT_CHANNELURL,al_details.get(getLayoutPosition()).get(URL_WEB).toString ());
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            mContext.startActivity(i);
        }
    });


0 commentaires

2
votes

La meilleure méthode consiste à transmettre les données via une interface forte>. Étant donné que votre réponse est en tâche asynchrone, nous devons passer à travers une interface forte>.

Cette interface peut être implémentée dans une activité lorsque des données [votre réponse à l'API] sont nécessaires. P>

Je vais vous montrer comment il peut être fait: H2>

Étape 1: Vous avez besoin d'une interface de création et de définition de la fonction p> xxx pré>

étape 2: utilisez cette interface Dans 'OnResponse' de votre appel à moderniser P>

  public void onAddText(String text) {
        Log.i("API RESPONSE", text);


1 commentaires

Excellente réponse! Cela a fonctionné pour moi, ce dont j'avais besoin. Merci!