[英]Take a single String of a RecyclerView, OnClick and Pass this string to a Google Maps Search
I'm implementing a google Maps Activity in my app and i'd like to give to this maps Activity a search via address. 我正在我的应用中实施谷歌地图活动,我想通过地址给这个地图活动一个搜索。 These addresses are stored in a Firestore RecyclerView and i'd like to let map show the address when the user click on one of the Firestore RecyclerView Rows...
这些地址存储在Firestore RecyclerView中,当用户点击其中一个Firestore RecyclerView行时,我想让地图显示地址...
Here's the Holder
这是持有人
public class RecyclerViewHolder1 extends RecyclerView.ViewHolder {
public TextView mnomeEsercente, mindirizzoEsercente;
public RecyclerViewHolder1(@NonNull View itemView) {
super(itemView);
mnomeEsercente = itemView.findViewById(R.id.roWnomeEsercente);
mindirizzoEsercente = itemView.findViewById(R.id.roWindirizzoEsercente);
}
}
Here's the adapter
这是适配器
public class RecyclerViewAdapter1 extends RecyclerView.Adapter<RecyclerViewHolder1> {
Esercenti esercenti;
ArrayList<User1> user1ArrayList;
public RecyclerViewAdapter1(Esercenti esercenti, ArrayList<User1> user1ArrayList) {
this.esercenti = esercenti;
this.user1ArrayList = user1ArrayList;
}
@NonNull
@Override
public RecyclerViewHolder1 onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(esercenti.getBaseContext());
View view = layoutInflater.inflate(R.layout.single_rowesercenti, parent, false);
return new RecyclerViewHolder1(view);
}
@Override
public void onBindViewHolder(@NonNull RecyclerViewHolder1 holder, int position) {
holder.mnomeEsercente.setText(user1ArrayList.get(position).getNomeEsercente());
holder.mindirizzoEsercente.setText(user1ArrayList.get(position).getIndirizzoEsercente());
}
@Override
public int getItemCount() {
return user1ArrayList.size();
}
}
And there's the Activity
还有活动
public class Esercenti extends FragmentActivity implements OnMapReadyCallback {
FirebaseFirestore db1;
RecyclerView mRecyclerViewEsercenti;
ArrayList<User1> user1ArrayList;
GoogleMap map;
RecyclerViewAdapter1 adapter1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_esercenti);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
user1ArrayList = new ArrayList<>();
setUpRecyclerView();
setUpFirebase();
loadDataFromFirebase();
}
private void loadDataFromFirebase() {
if (user1ArrayList.size() > 0)
user1ArrayList.clear();
db1.collection("esercenti").get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for (DocumentSnapshot querySnapshot : task.getResult()) {
User1 user1 = new User1(querySnapshot.getString("nomeEsercente"), querySnapshot.getString("indirizzoEsercente"));
user1ArrayList.add(user1);
}
adapter1 = new RecyclerViewAdapter1(Esercenti.this, user1ArrayList);
mRecyclerViewEsercenti.setAdapter(adapter1);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(Esercenti.this, "Problema di caricamento,controlla la tua connessione!", Toast.LENGTH_SHORT).show();
}
});
}
private void setUpFirebase() {
db1 = FirebaseFirestore.getInstance();
}
private void setUpRecyclerView() {
mRecyclerViewEsercenti = findViewById(R.id.RecyclerViewEsercenti);
mRecyclerViewEsercenti.setHasFixedSize(true);
mRecyclerViewEsercenti.setLayoutManager(new LinearLayoutManager(this));
}
@Override
public void onPointerCaptureChanged(boolean hasCapture) {
}
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
LatLng base = new LatLng(0, 0);
map.addMarker(new MarkerOptions().position(base).title("Sede AirBc"));
map.animateCamera(CameraUpdateFactory.newLatLng(base));
map.animateCamera(CameraUpdateFactory.zoomIn());
}
}
How to do this? 这个怎么做? Thank you in advance!
先感谢您!
You can achieve the same by following some steps. 您可以通过以下步骤实现相同的目标。 I have mentioned below.
我在下面提到过。
You have to follow the same procedure on every RecyclerView item click event. 您必须在每个RecyclerView项目单击事件上执行相同的过程。
Let me know if you need something more from me. 如果你需要更多我的东西,请告诉我。
Hope this help :) 希望这有帮助:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.