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); }
5 Réponses :
C'est mon dernier projet et je souhaite vous aider:
Créer un adaptateur pour votre RecyclerVoir, comme ci-dessous: p> } p> et dans votre activité: p>
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.
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);
Utilisez Bundle P>
en activité1, transmettez les données: p>
xxx pré> inactive2, récupérez les données: p>
xxx pré> blockQuote>
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
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); } });
La meilleure méthode consiste à transmettre les données via une interface Cette interface peut être implémentée dans une activité lorsque des données [votre réponse à l'API] sont nécessaires. P> Étape 1: Vous avez besoin d'une interface de création et de définition de la fonction p> étape 2: utilisez cette interface Dans 'OnResponse' de votre appel à moderniser P> Je vais vous montrer comment il peut être fait: H2>
public void onAddText(String text) {
Log.i("API RESPONSE", text);
Excellente réponse! Cela a fonctionné pour moi, ce dont j'avais besoin. Merci!
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!