Android SearchAutocomplete во фрагмент - PullRequest
1 голос
/ 29 марта 2020

Я новичок в android, и я пытаюсь создать приложение, которое спрашивает, спрашивают его начальное местоположение и местоположение назначения. (например, карта Google)

Проблема заключается в том, что я создаю его во фрагмент, и как только я нажимаю на строку поиска, мое приложение cra sh "К сожалению, приложение остановилось" с этой ошибкой:

java .lang.NullPointerException: попытка вызвать виртуальный метод 'void com.google. android .libraries.places.widget.AutocompleteSupportFragment.setPlaceFields (java .util.List) 'на нулевой ссылке на объект

Вот мой код во фрагмент "SearchFragment"

String apikey = "vvfvsvsddsvsvdsvdsvsdDummyApiKey";
if (!Places.isInitialized()){
    Places.initialize(this.getActivity().getApplicationContext(), apikey);
}
placesClient = Places.createClient(this.getActivity());
try {
    // From Fragment
    final AutocompleteSupportFragment autocompleteSupportFragment = (AutocompleteSupportFragment) 
getActivity().getSupportFragmentManager().findFragmentById(R.id.autocomplete_fragment);
    autocompleteSupportFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.LAT_LNG, 
Place.Field.NAME));

    autocompleteSupportFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(@NonNull Place place) {
            final LatLng latLng = place.getLatLng();

            Log.i("PlacesApi", "onPlaceSelected:" + latLng.latitude + "\n" + latLng.longitude);
        }

        @Override
        public void onError(@NonNull Status status) {

        }
    });

    // To Fragment
    final AutocompleteSupportFragment autocompleteSupportFragmentTo = 
(AutocompleteSupportFragment) 
getActivity().getSupportFragmentManager().findFragmentById(R.id.autocomplete_fragmentTo);

    assert autocompleteSupportFragmentTo != null;
    autocompleteSupportFragmentTo.setPlaceFields(Arrays.asList(Place.Field.ID, 
Place.Field.LAT_LNG, Place.Field.NAME));

    autocompleteSupportFragmentTo.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(@NonNull Place place) {
            final LatLng latLng = place.getLatLng();

            assert latLng != null;
            Log.i("PlacesApi", "onPlaceSelected:" + latLng.latitude + "\n" + latLng.longitude);
        }

        @Override
        public void onError(@NonNull Status status) {

        }
    });
}catch (Exception e){
    System.out.println("Error into the GooglePlaces Secction");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...