【问题标题】:How can I make this request我怎样才能提出这个要求
【发布时间】:2018-09-21 06:00:00
【问题描述】:

我所拥有的:当你打开一个应用程序时,它会向你显示一个带有 3 个按钮的地图,上面写着“餐厅”、“医院”、“酒吧”,一旦单击其中一个按钮,它们就会向你显示附近的这个地方

我有什么:对于美学问题,当您打开一个应用程序时,它会向您显示一个带有图像的 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();
            }
        });

【问题讨论】:

    标签: java android xml android-studio android-recyclerview


    【解决方案1】:

    要将数据从一个活动传递到另一个活动,您必须使用Intentextras 字段。这是一个Bundle(键/值数据结构),您可以在其中存储您想要的所有内容(有大小限制,因此通常最好只传递 ID 或类似的东西,而不是实际数据)。

    您可以在此处执行以下操作:在适配器的onClick 方法中,向Intent 添加一个额外字段,其中包含您要显示的信息类型(餐厅、酒吧或医院)。然后,在您的第二个活动(包含地图的活动)中,在onCreate 方法中,从Intent 中读取该字段。然后,您仍然可以将 Nearby Places 请求放入 onMapReady 方法中,使用该字段来确定您请求的类型,而不是依赖于特定的按钮单击事件。

    【讨论】:

    • 非常感谢您回答了我的问题,但恐怕我还是不明白该怎么做,非常感谢您提供示例代码,再次感谢您的回答跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多