Java 如何使用GeoDataApi.getPlaceById?
问题: 从ID字符串创建Java 如何使用GeoDataApi.getPlaceById?,java,android,google-places-api,Java,Android,Google Places Api,问题: 从ID字符串创建Place对象的最干净方法是什么 我想用硬编码的ID制作一些place对象。 想一想类似于place1=newplace(“ChIJS_zBNNbXAhURy-FuRT5ib9k”),但这当然行不通 我遇到了GeoDataApi.getPlaceById,但是文档很混乱 该API通常用于查找用户输入的任何内容(可以选择使用自动完成),但我需要更小更干净的东西(想想:单元测试的目的) 我的研究: 要通过ID获取位置,请调用并传递一个或多个位置ID 该API在中返回一个。
Place
对象的最干净方法是什么
我想用硬编码的ID制作一些place
对象。
想一想类似于place1=newplace(“ChIJS_zBNNbXAhURy-FuRT5ib9k”)
,但这当然行不通
我遇到了GeoDataApi.getPlaceById
,但是文档很混乱
该API通常用于查找用户输入的任何内容(可以选择使用自动完成),但我需要更小更干净的东西(想想:单元测试的目的)
我的研究: 要通过ID获取位置,请调用并传递一个或多个位置ID 该API在中返回一个。包含与提供的位置ID匹配的对象列表 文件: (所需对象) (可转换到一个地方) (返回一个pendingreult)
我的困境是什么: 我找不到一种优雅的方法将
pendingreult
转换为PlaceBuffer
API在pendingreult
中返回一个PlaceBuffer
来自pendingreult
的最终结果对象的类型为R
,可以通过以下两种方式之一进行检索
- 通过阻止调用
,或await()
,或await(long,TimeUnit)
- 通过回调,将对象实现接口
传递到ResultCallback
setResultCallback(ResultCallback)
回调太乱了,我找不到任何使用
wait
从中学习的代码。您可以很容易地将pendingreult
从getPlaceById
转换为PlaceBuffer
。只需调用await()
方法:
PendingResult<PlaceBuffer> result = Places.GeoDataApi.getPlaceById(
mGoogleApiClient, placeId);
PlaceBuffer placeBuffer = result.await();
pendingreult result=Places.GeoDataApi.getPlaceById(
mGoogleApiClient,placeId);
PlaceBuffer PlaceBuffer=result.await();
(如果您愿意,您当然可以在一行中完成。)
这里有调用
GeoDataApi.getPlaceByID
和pendingreult.await
in的示例。我在@xomena找到了一个示例,我已经看到并阅读了这个示例。一些ctrl+f
可以帮助处理如此大的代码片段。这几乎没有帮助。返回的结果对象可能有一个额外的中断故障模式。
-您如何处理它?与您在PlaceBuffer中处理任何其他故障状态的方式相同。例如,如果(!placeBuffer.getStatus().issucess()){reportErrorSomewhere(placeBuffer.getStatus().toString());}
注意:Pendingreult是旧的,请参阅API