在android中使用linkify链接地图地址

时间:2012-06-23 19:23:01

标签: android linkify

以下代码不起作用 -

   TextView myLocation = new TextView(this);
   myLocation.setText("Sodala, Jaipur, Rajasthan, IN");
   Linkify.addLinks(myLocation , Linkify.MAP_ADDRESSES);
   mainLayout.addView(myLocation);

3 个答案:

答案 0 :(得分:2)

看来你的地址对于Linkify来说太模糊了。我不知道印度的地址是什么样的(如果它们完全不同),那么考虑一下美国的纽约:

myLocation.setText("New York, NY   34 Maint St New York, NY");

“仅纽约,纽约”不是Linkify的有效地图地址。

您可以尝试设置自己的模式,方法是an example here与“,IN”匹配任何内容。

答案 1 :(得分:1)

以下是带有自定义模式的 addLinks 的简化版。:

Pattern pattern = Pattern.compile(".*", Pattern.DOTALL);
addressTextView.setText(address);
Linkify.addLinks(addressTextView, pattern, "geo:0,0?q=");

我将此用于德国和美国地址,因为谷歌地图在搜索其他地方应该找到的地址时非常聪明。

这个重点是适用于我的用例的 TextView 的所有内容。如果地址位于字符串内部,则需要在此处应用更智能的模式。

答案 2 :(得分:0)

你试试

http://www.aviyehuda.com/2011/01/android-creating-links-using-linkfy/

// Recognize all of the default link text patterns 
    Linkify.addLinks(text, Linkify.ALL);

http://www.aviyehuda.com/2011/01/android-creating-links-using-linkfy/

TextView myCustomLink2 = new TextView(this);
Pattern pattern2 = Pattern.compile("[a-zA-Z]+");
myCustomLink2.setText("press one of these words to search it on google: Android Linkify dzone");
Linkify.addLinks(myCustomLink2,pattern2, "http://www.google.ie/search?q=", myMatchFilter, null);