Donc, j'obtiens mes données d'un service Web et j'utilise l'adaptateur RecyclerView. Dans la méthode onBindviewholder de RecyclerView.adapter, je veux passer les données à recyclerView dans MainActivity mais aussi passer les données (item) à MyMapsActivity.Le truc est onBindViewholder a setOnClickListener et setOnLongClickListener comme contrôles qui sont utilisés. Existe-t-il un moyen d'envoyer les données (élément) en utilisant une intention qui ne démarre pas l'activité ou existe-t-il un moyen de câbler un nouveau bouton dans la méthode onBindViewholder car ce qui se passe est quand l'application démarre directement sur MyMapsActivity ce qui est attendu. Existe-t-il un moyen de contrôler cela en utilisant un nouveau bouton qui peut interagir avec onBindViewholder ou y at-il un moyen de passer l'intention.putExtra sans démarrer MyMapsActivity.Maybe Ma compréhension est erronée mais voici mon code pour les méthodes et activités indiquées :Y at-il de toute façon d'envoyer des données dans une intention mise supplémentaire sans démarrer une activité?
onBindViewholder
public void onBindViewHolder(DataItemAdapter.ViewHolder holder, int position) {
final DataItem item = mItems.get(position);
try {
holder.titletext.setText(item.getTitle());
holder.companyText.setText(item.getCompany());
holder.cityText.setText(item.getCity());
holder.salarytext.setText(""+ item.getSalary());
holder.descriptionText.setText(item.getDescription());
holder.responsibilityText.setText(item.getResponsibility());
holder.latText.setText(""+ item.getLatitude());
holder.lngText.setText(""+ item.getLongitude());
holder.phoneText.setText(item.getPhone());
holder.provinceText.setText(item.getProvince());
} catch (Exception e) {
e.printStackTrace();
}
//click
holder.mView.setOnClickListener(new View.OnClickListener() {//getting viewholder class and ctor
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext,DetailsActivity.class);
intent.putExtra(ITEM_KEY,item);
mContext.startActivity(intent);
}
});
//long click
holder.mView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(mContext, "long click: " + item.getTitle(), Toast.LENGTH_SHORT).show();
return false;
}
});
// !!!!!----this is the intent Im talking about----!!!
Intent intent = new Intent(mContext,MyMapActivity.class);
intent.putExtra(ITEM_KEY,item);
mContext.startActivity(intent);
}
Ma méthode de cartes:
public void onMapReady(GoogleMap googleMap) {
final DataItem item = getIntent().getExtras()
.getParcelable(DataItemAdapter.ITEM_KEY); //--------gets intent frm dataItemAdapter
if (item == null) {
throw new AssertionError("null data recived");
}
mapReady = true;
mMap = googleMap;
LatLng latLngToronto = new LatLng(43.733092, -79.264254);
// LatLng latLnghome = new LatLng(43.656729, -79.377162);
CameraPosition target = CameraPosition.builder().target(latLngToronto).zoom(15).tilt(65).build();
mMap.moveCamera(CameraUpdateFactory.newCameraPosition(target));
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
markerDisplay(item.getTitle(),item.getLatitude(),item.getLongitude());//------maps jobs marker-------new
//add markers and
//instantiate
// mMap.addMarker(mp);
// mMap.addMarker(md);
}
Si vous devez transmettre des données entre activités, cochez cette case [lien] (https://stackoverflow.com/questions/4878159/whats-the-best-way-to-share-data-between-activities#answer- 4878259) – matoni
Merci mon problème persistait les données j'ai utilisé un Arraylist et itéré en utilisant un foreach. J'étais trop penser. –