2010-04-12 81 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