问题:
从ID字符串创建$date
对象的最简洁方法是什么?
我想用硬编码的ID制作一些Place
个对象。
想想像place
这样的东西,但当然不起作用。
我遇到Place place1 = new Place("ChIJS_zBNNbXAhURy-FuRT5ib9k")
,但文档令人困惑。
该API通常用于查找用户输入的内容(可选择自动完成),但我需要更小更清洁的东西(想想:单元测试目的)
要按ID获取地点,请致电
GeoDataApi.getPlaceById
,传递一个或多个地点ID。API会在
PlaceBuffer
中返回PendingResult
。PlaceBuffer
包含与提供的地点ID匹配的Place
个对象列表。
文档:
Place (需要的对象)
PlaceBuffer (可转换为地方)
getPlaceById (返回PendingResult)
我坚持使用:
我找不到一种优雅的方式将GeoDataApi.getPlaceById
转换为PendingResult
。
API会在
PlaceBuffer
中返回PlaceBuffer
。
...
PendingResult
的最终结果对象属于PendingResult<R>
类型,可以通过以下两种方式之一进行检索。
- 通过阻止对
的来电R
或await()
或- 通过将实现接口
await(long, TimeUnit)
的对象传递给ResultCallback
来通过回调。
回调过于混乱,我找不到任何使用setResultCallback(ResultCallback)
来学习的代码。
答案 0 :(得分:1)
您可以非常轻松地将PendingResult
从getPlaceById
转变为PlaceBuffer
。您只需调用await()
方法:
PendingResult<PlaceBuffer> result = Places.GeoDataApi.getPlaceById(
mGoogleApiClient, placeId);
PlaceBuffer placeBuffer = result.await();
(如果你愿意,你当然可以在一行中这样做。)
在https://github.com/googlesamples/android-play-places中调用GeoDataApi.getPlaceByID
和PendingResult<PlaceBuffer>.await
的示例。