我所拥有的:一个应用程序,当你打开它时,它会显示一个带有3个按钮的地图,上面写着“餐厅”,“医院”,“酒吧”,一旦点击其中一个,他们就会向你展示这个附近的地方< / p>
我拥有的内容:对于美学问题,一个应用程序,当您打开时,它会显示带有图像的RecyclerView,当您单击其中一个图像时,会带您到当前位置的地图。
我想要的是:当我点击RecyclerView的一个图像(例如餐馆)时,它会显示我附近的餐馆的地图,但是我在OnBindViewHolder上的RecyclerView适配器中的OnClickListener发出此请求()方法
我的问题:如果Latitude和Longitude等元素在另一个Activity中,并且在一个名为OnMapReady()的方法中,我如何使用我最初的按钮发出请求,如何发出此请求。请通过代码示例欣赏答案,我仍然不擅长编程,并且有数百万条我不理解的术语,提前感谢
我的RecyclerView以及我想提出请求的地方
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
holder.etiNombre.setText(listalugares.get(position).getNombre());
holder.foto.setImageResource(listalugares.get(position).getFoto());
holder.foto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (position == 0){
Intent myIntent = new Intent(context, MapsActivity.class);
context.startActivity(myIntent);
}
}
});
}
我以前提出要求的地方
@Override
public void onMapReady(GoogleMap googleMap) {//esta funcion es llamada cuando el mapa esta listo para usarse(1- locacion)
mMap = googleMap;
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);//esto es lo que que dice de que forma queremos que se vea el mapa
//Initialize Google Play Services
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
buildGoogleApiClient();
mMap.setMyLocationEnabled(true);
}
}
else {
buildGoogleApiClient();
mMap.setMyLocationEnabled(true);
}
Button btnRestaurant = (Button) findViewById(R.id.btnRestaurant);
btnRestaurant.setOnClickListener(new View.OnClickListener() {
String Restaurant = "restaurant";
@Override
public void onClick(View v) {
Log.d("onClick", "Button is Clicked");
mMap.clear();
String url = getUrl(latitude, longitude, Restaurant);
Object[] DataTransfer = new Object[2];
DataTransfer[0] = mMap;
DataTransfer[1] = url;
Log.d("onClick", url);
GetNearbyPlacesData getNearbyPlacesData = new GetNearbyPlacesData();
getNearbyPlacesData.execute(DataTransfer);
Toast.makeText(MapsActivity.this,"Nearby Restaurants", Toast.LENGTH_LONG).show();
}
});
答案 0 :(得分:0)
要将数据从活动传递到另一个活动,您必须使用Intent的extras
字段。它是一个Bundle
(一个键/值数据结构),您可以在其中存储您想要的所有内容(具有大小限制,因此通常只传递ID或类似内容,而不是实际数据)。< / p>
您可以在此处执行以下操作:在适配器的onClick
方法中,向Intent
添加一个额外字段,其中包含您要显示的信息类型(餐馆,酒吧或医院)。然后,在您的第二个活动(包含地图的活动)中,在onCreate
方法中,阅读Intent
中的字段。然后,您仍然可以在onMapReady
方法中放置“附近位置”请求,使用该字段确定您要求的类型,而不是依赖于特定的按钮点击事件。