Как я могу сделать этот запрос

Что у меня было: приложение, которое при открытии показывало вам карту с 3 кнопками, на которых было написано «Ресторан», «Больницы», «Бары», и как только вы нажимали на одну из них, они показывали вам эти места поблизости.

Что у меня есть: для эстетических вопросов приложение, которое при открытии показывает вам RecyclerView с изображениями, и когда вы щелкаете одно из этих изображений, вы переходите на карту с вашим текущим положением.

Что я хочу: когда я нажимаю на одно из изображений RecyclerView, например, «Рестораны», отображается карта с ресторанами рядом со мной, но выполняется этот запрос из OnClickListener, который у меня есть в моем адаптере RecyclerView в методе OnBindViewHolder ().

Мой вопрос: как мне сделать этот запрос, если такие элементы, как широта и долгота, находятся в другом действии, а также в методе под названием 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
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы передать данные от действия к другому, вам нужно будет использовать поле extrasНамерение. Это Bundle (структура данных ключ / значение), где вы можете хранить все, что хотите (с ограничениями по размеру, поэтому обычно рекомендуется передавать только идентификаторы или тому подобное, а не фактические данные).

Что вы можете сделать здесь: в методе onClick вашего адаптера добавьте дополнительное поле к Intent, содержащее тип информации, который вы хотите отобразить (ресторан, бар или больница). Затем во втором упражнении (содержащем карту) в методе onCreate прочтите поле из Intent. Затем вы все равно можете разместить свой запрос «Места поблизости» в методе onMapReady, используя поле для определения запрашиваемого типа, вместо того, чтобы зависеть от конкретного события нажатия кнопки.

Я очень ценю, что вы ответили на мой вопрос, но я боюсь, что до сих пор не понимаю, что делать, я был бы очень признателен за пример кода, и еще раз спасибо за ваш ответ

user8331144 11.04.2018 13:34

Другие вопросы по теме