Я новичок в студии кодирования Android. Я пытался реализовать PlacePicker - PullRequest
0 голосов
/ 18 января 2020

Поскольку я не знаю Kotlin Кодирование, может ли кто-нибудь преобразовать приведенный ниже код в Java onActivityResult ()

 override fun onClick(v: View?) {
    when (v?.id) {
        R.id.cardviewPlacePickerSearch -> {
            val intent = VanillaPlacePicker.Builder(this)
                .with(PickerType.AUTO_COMPLETE)
                .withLocation(23.057582, 72.534458)
                .setPickerLanguage(PickerLanguage.ENGLISH)
                .build()
            startActivityForResult(intent, KeyUtils.REQUEST_PLACE_PICKER)
        }

        R.id.cardviewPlacePickerMap -> {
            val intent = VanillaPlacePicker.Builder(this)
                .withLocation(23.057582, 72.534458)
                .with(PickerType.MAP_WITH_AUTO_COMPLETE)
                .setMapType(MapType.NORMAL)
                .setPickerLanguage(PickerLanguage.ENGLISH)
                .build()
            startActivityForResult(intent, KeyUtils.REQUEST_PLACE_PICKER)
        }
    }
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (resultCode == Activity.RESULT_OK && data != null) {
        when (requestCode) {
            KeyUtils.REQUEST_PLACE_PICKER -> {
                val vanillaAddress = VanillaPlacePicker.onActivityResult(data)
                vanillaAddress?.let {
                    cardviewSelectedPlace.showView()
                    tvSelectedPlace.text = it.formattedAddress
                }
            }
        }
    }
}

Ниже приведен код, который я пытался преобразовать.

public void placePicker(){
    Intent intent = new VanillaPlacePicker.Builder(this)
            //.withLocation(40.748672, -73.985628)
            .with(PickerType.MAP_WITH_AUTO_COMPLETE)
            .setMapType(MapType.NORMAL)
            .setPickerLanguage(PickerLanguage.ENGLISH)
            .build();

    startActivityForResult(intent, KeyUtils.REQUEST_PLACE_PICKER);
}@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if (requestCode == KeyUtils.PLACE_PICKER_REQUEST) {
        if (resultCode == Activity.RESULT_OK && data != null) {
            try {
                String address= KeyUtils.SELECTED_PLACE;
                VanillaAddress vanillaAddress= new VanillaAddress(address);
            } catch (Exception e) {
                Log.e("MainActivity", e.getMessage());
            }
        }
    } else {
        super.onActivityResult(requestCode, resultCode, data);
    }
}

Однако я не могу получить адрес, который указан на карте. Вот ссылка Зависимости от GitHub

1 Ответ

0 голосов
/ 19 января 2020

Мне нужно типизировать тип данных, чтобы получить данные.

Здесь,

VanillaAddress address= (VanillaAddress) data.getSerializableExtra(KeyUtils.SELECTED_PLACE);
//vanillaAddress.getFormattedAddress();
showUserAddress.setText(address.getFormattedAddress());

, наконец, через 2 дня, Это было решено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...