使用新的 Google Places SDK 使用 PlaceAutoCompleteFragment 时设置 Place Fields 错误
Setting Place Fields error while using PlaceAutoCompleteFragment using new Google Places SDK
目前正在关注 Google 关于使用 Google 的新 guide 但是使用片段的地方。
尽管设置
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));
它带来了
java.lang.NullPointerException: Place Fields must be set.
目前这是我的代码。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
autocompleteFragment.onActivityResult(requestCode, resultCode, data);
autocompleteFragment = (AutocompleteSupportFragment)
getChildFragmentManager().findFragmentById(R.id.autocomplete_fragment);
if (!Places.isInitialized()) {
Log.d(TAG, "onActivityResult: Start");
Places.initialize(getActivity(), String.valueOf(R.string.google_api_key));
}
if (autocompleteFragment != null) {
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));
}
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));
// Set up a PlaceSelectionListener to handle the response.
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(@NonNull Place place) {
Log.d(TAG, "Place: " + place.getName() + ", " + place.getId());
}
@Override
public void onError(@NonNull Status status) {
Log.d(TAG, "onError: Error:" + status);
}
});
}
Places SDK has been Depricated You need to migrate to new PLACES API.
You can find solution by the below tguideline.
目前正在关注 Google 关于使用 Google 的新 guide 但是使用片段的地方。
尽管设置
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));
它带来了
java.lang.NullPointerException: Place Fields must be set.
目前这是我的代码。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
autocompleteFragment.onActivityResult(requestCode, resultCode, data);
autocompleteFragment = (AutocompleteSupportFragment)
getChildFragmentManager().findFragmentById(R.id.autocomplete_fragment);
if (!Places.isInitialized()) {
Log.d(TAG, "onActivityResult: Start");
Places.initialize(getActivity(), String.valueOf(R.string.google_api_key));
}
if (autocompleteFragment != null) {
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));
}
autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));
// Set up a PlaceSelectionListener to handle the response.
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(@NonNull Place place) {
Log.d(TAG, "Place: " + place.getName() + ", " + place.getId());
}
@Override
public void onError(@NonNull Status status) {
Log.d(TAG, "onError: Error:" + status);
}
});
}
Places SDK has been Depricated You need to migrate to new PLACES API. You can find solution by the below tguideline.