2010-04-12 82 views
8

我在我的XML佈局文件下面的TextView: -自動鏈接在地圖不工作

<TextView 
    android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/autolink_test" 
     android:autoLink="all" 
/> 

字符串autolink_test包含電話號碼,電子郵件地址,網站地址和物理地理地址。

雖然前三個顯示正確的可點擊自動鏈接,但地址沒有。只有郵編部分顯示爲自動鏈接...並且也是一個電話號碼! (當我點擊它時,電話撥號程序以該號碼啓動)。

任何幫助,將不勝感激。

+0

如果你告訴我們什麼字符串「autolink_test」是這將幫助;否則很難診斷。 – 2010-04-12 19:09:34

+0

Daniel, 感謝您的評論。試圖回答它幫助我找出問題所在! – OceanBlue 2010-04-12 19:51:57

回答

8

好的,我想清楚是什麼導致了這個問題。只是以爲我會在這裏留下答案,以防其他人遇到同樣的問題。

如果街道地址沒有正確大寫,則不能正確讀取地址!

這裏是我的XML字符串autolink_test:

<string name="autolink_test">Name: New York Times \n 
    Email: [email protected] \n 
    Phone: 212-556-7652 \n 
    Address: 620 Eighth Avenue New York, NY 10018 \n 
    Address: 620 Eighth avenue New York, NY 10018 \n 
    Website: http://www.nytimes.com 
</string> 

的首地址正確顯示爲自動鏈接。 第二個(在'avenue'中有一個小'a')沒有正確顯示。

這對我來說似乎有點奇怪,因爲谷歌地圖網站肯定不關心這樣的細節。

不管怎麼說,所以這裏是:-)

+0

不錯的觀察! – Ahsan 2011-09-26 15:31:07

+0

我挖得更深一點,發現了實際的「'isThisAnAddress」「代碼: [WebKit通過JNI調用源代碼](http://source-android.frandroid.com/external/webkit/Source/WebKit/android/nav/ CacheBuilder.cpp),方法名稱是「CacheBuilder :: FindAddress」。 在'case FIND_STREET:''longStreetNames'數組正在被'letter - ='A''索引,因此不支持小寫。 – TWiStErRob 2012-08-12 23:33:20

+0

如果您不指定street/lane/address/etc作爲地址的一部分,也會發生這種情況。 – dazza5000 2016-02-29 03:53:25

9

替代它,萬一要是自動連接不起作用

鏈接添加到您的texview。把它突出表明folows:

SpannableString spanStr = new SpannableString(buf.toString()); 
spanStr.setSpan(new UnderlineSpan(), 0, spanStr.length(), 0); 
iTextView.setText(spanStr); 

使用下面的代碼與地圖應用程序中打開它點擊如下:

Intent geoIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=" 
           +iTextView.getText().toString())); 
startActivity(geoIntent); 
+0

我決定使用這種方法,因爲自動鏈接在文本是和不可接受的方面看起來很「敏感」(正如op指出的那樣,「這對我來說似乎有點奇怪,因爲google maps網站肯定不關心「)除了區分大小寫外,我注意到」街道「,」大道「等的遺漏也導致了投入的」拒絕「。 – hBrent 2015-01-19 20:28:33