我很想知道,有没有人知道如何在Android中的Linkify匹配的textview中获取地址并将其设为可点击链接?
我想我可以弄清楚如何手动执行此操作,但我想知道是否必须将地址与特定模式匹配,以便在没有我为Linkify执行此操作时执行此操作?
我已经看到了其他有关此问题的问题,但这些问题已经过时,而且从未真正得到解决。
你能指出我正确的方向吗?
您可以在下面看到我如何使用经度和纬度以及地址本身手动执行此操作。
mLocation.mImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_VIEW);
//callIntent.setData(Uri.parse("google.navigation:q=" + establishment.getStreet() + "+" + establishment.getHousenumber() + "+" + establishment.getPostalcode() + "+" + establishment.getCity()));
callIntent.setData(Uri.parse("geo:" + establishment.getLongitude() + ", " + establishment.getLatitude()));
startActivity(callIntent);
}
});
提前致谢。
答案 0 :(得分:0)
也许这可以帮到你:http://www.aviyehuda.com/blog/2011/01/27/android-creating-links-using-linkfy/
TextView myLocation = new TextView(this);
myLocation.setText("436 Mayfield Ave, Stanford, CA");
Linkify.addLinks(myLocation , Linkify.MAP_ADDRESSES);
mainLayout.addView(myLocation);
答案 1 :(得分:0)
如果你看这里:
您将看到目前Linkify仅支持美国地址。
获取由物理位置的地址组成的第一个子字符串。 目前,仅检测到美国境内的地址,包括:
- 门牌号
- 街道名称
- 街道类型(道路,圆圈等),拼写或缩写
- 城市名称
- 一个州或领地,无论是拼写出来还是两个字母abbr
- 可选的5位数或9位邮政编码
所有名称必须正确大写,并且邮政编码(如果有) 必须对国家有效。街道类型必须是标准USPS拼写 或缩写。州或领地也必须拼写或缩写 使用USPS标准。门牌号码不得超过五位数。
参数:添加字符串以搜索地址
返回:地址,或者如果找不到地址,则返回
希望这有助于任何人试图找出同样的事情。
我想我唯一能做的就是建立自己的地址匹配器。