java - 使用新的 Google Places SDK 使用 PlaceAutoCompleteFragment 时设置地方字段错误
问题描述
但是,目前正在遵循 Google 关于使用 Fragment 使用 Google Places的新指南。
尽管设置
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 已弃用 您需要迁移到新的PLACES API。您可以通过以下 tguideline 找到解决方案。
推荐阅读
- electron - WebRTC 通话音频 - 安静、低沉和掉线
- php - 在 phpv 中的 echo 字段中使用 html 在数据库中添加值
- android - React native android:如何设置 WebChromeClient
- xml - XML 验证:不需要前缀?
- android - 'adb' 未被识别为内部或外部命令
- class - C++ 授予访问权限
- java - GraphView 错误的 x 轴视口
- java - 在 for 循环中从数组中删除项目会返回错误
- python - pyvmomi 部署 ovf 模板
- javascript - 通过按钮添加元素后,为什么单击列表项不会更改标题?