由于某种原因,最近更改了getMaxAddressLineIndex的实现。现在这种方法返回0为第1行。Android getMaxAddressLineIndex为第1行返回0
我有一个现有的代码,它曾经工作:i<address.getMaxAddressLineIndex(
)。但是,它以某种方式被打破。
我不知道这是否是由于谷歌新的API或别的东西。
有人可以请确认我在这里发生了什么?
由于某种原因,最近更改了getMaxAddressLineIndex的实现。现在这种方法返回0为第1行。Android getMaxAddressLineIndex为第1行返回0
我有一个现有的代码,它曾经工作:i<address.getMaxAddressLineIndex(
)。但是,它以某种方式被打破。
我不知道这是否是由于谷歌新的API或别的东西。
有人可以请确认我在这里发生了什么?
我有同样的问题,这只是一种变通方法。
if (address.getMaxAddressLineIndex() > 0) {
for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
addressFragments.add(address.getAddressLine(i));
}
} else {
try {
addressFragments.add(address.getAddressLine(0));
} catch (Exception ignored) {}
}
希望这有助于
重申下面的答案** mdicosimo ** 代码行为正确,并返回最大的索引。它不是线数,而是最高有效指数。 (int idx = 0; //注意小于或等于<=不小于< ) idx <= address.getMaxAddressLineIndex(); idx ++){ String line = address.getAddress(idx); }' – user1959190
同样的事情发生在我身上。 我核实,开发人员参考(https://developer.android.com/reference/android/location/Address.html#getMaxAddressLineIndex())现在状态:
INT getMaxAddressLineIndex()
目前返回使用量最大的指数,以指定的地址线。如果没有指定地址行,则返回-1。
所以它似乎反映了新的行为。
总之,为了安全起见,我会附上getAddressLine(i)
内try\catch
欣赏此@mdicosimo - 但亲爱的谷歌api版本控制发生了什么?如果现有的api行为随已发布的应用程序发生变化,它不会提供良好的用户体验... – kuruppsify
in一些mi电话返回0.虽然有地方值,sublocality等 – kId
我觉得getAddressLine()
发生了变化。它用于将单独调用中的地址的各个元素返回到...getAddressLine(0)
,...getAddressLine(1)
等等,最多getAddressLine(n)
,其中n
是...getMaxAddressLineIndex()
。
现在它似乎将整个地址连接并逗号分隔为...getAddressLine(0)
和...getMaxAddressLineIndex()
的调用总是返回0(如果返回地址,则返回-1,如果没有返回地址则返回-1)。
例如,在老版本中,议会在伦敦的房子的lat/long
将返回(为第一地址返回)4条地址线:
addressLines=[0:"9748 Abingdon Street",1:"Westminster, London",2:"SW1P 3JY",3:"UK"]
现在它返回一个行:
addressLines=[0:"9748 Abingdon St, Westminster, London SW1P 3JY, UK"]
这似乎是发生在我身上。我已经尝试过Moto G5 Plus与Android 7和三星平板电脑Android 6。我的Android模拟器仍然以旧的方式工作。有人告诉我,如果我弄错了!
注意:在过去,您可以测试i < address.getMaxAddressLineIndex()
而不是<=
。这仅仅意味着你没有得到最后一个元素,这个元素似乎总是被忽略的国家名称(例如“USA”)。现在.getMaxAddressLineIndex()
似乎总是返回零,这将无法正常工作。但是请注意,您将字符串“USA”追加到字符串.getAddressLine(0)
。
所以不需要使用getAddressLine(i)对吗? – Shruti
兄弟,你找到解决方案吗?我得到了同样的问题:( –
@SarinSuriyakoon只有我可以来的解决方案是开始考虑0作为你的第一项,-1意味着没有! – codebased
寻找解决方案:https://stackoverflow.com/questions/45208116/geocoder-返回地址为零长度 –