AutocompleteSupportFragment размещает .getAddress имеет значение null.GetAddress устарела? - PullRequest
0 голосов
/ 24 февраля 2019

Я использую AutocompleteSupportFragment в своем проекте

AutocompleteSupportFragment places places = (AutocompleteSupportFragment)
getSupportFragmentManager().findFragmentById(R.id.place_autocompleteFragment);
places.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));  
places.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(@NonNull Place place) {
    try {
        if ( location_switch.isChecked() ) {
            if ( place.getName() != null ) {
                destination = place.getName().toString();
                destination = destination.replace(" ", "+");
                if ( Constants.IS_LOGG_ENABLE ) {
                    Log.d(Constants.TAG, "Destination Location = " + destination);
                    Log.d(Constants.TAG, "Place: " + place.getName() + ", Place ID: " + place.getId());
                    Log.d(Constants.TAG, "Address = " + place.getAddress());
                }
                getDirection();
            } else {
                Toast.makeText(DriverMainActivity.this, "Error occurred, please try again.", Toast.LENGTH_SHORT).show();
            }
        } else {
            Toast.makeText(DriverMainActivity.this, "Please change your status to ONLINE", Toast.LENGTH_SHORT).show();
        }
    }catch (Exception ex){
        if(Constants.IS_LOGG_ENABLE){
            ex.printStackTrace();
        }
    }
}

Прекрасно получите мне название места и идентификатор, но мне нужен адрес этого выбранного места

Log.d (Constants.TAG, "Place:" + place.getName () + ", ID места:" + place.getId ());

вот так, но я получаю исключение java.lang.NullPointerException в этой строке

Log.d (Constants.TAG, "Address =" + place.getAddress ());

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Используйте Place.Field.values ​​() , чтобы получить все значения Places

List<Place.Field> fields = Arrays.asList(Place.Field.values());
//        List<Place.Field> fields = Arrays.asList(Place.Field.ID, Place.Field.NAME, Place.Field.ADDRESS);
        Intent intent = new Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, fields).build(this);
        startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE);
0 голосов
/ 24 февраля 2019

Рассматривали ли вы установку адреса в этой строке places.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME)); вы, кажется, устанавливаете только идентификатор и имя, и все же вы хотите получить адрес, для которого не установлено никакого значения

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