由於某種原因,最近更改了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-返回地址爲零長度 –