编辑以解决部分问题
我有一个TextView是ListView的子项。
现在,我想让这个TextView中的电话号码,电子邮件地址,地图地址变得可点击。
这是我在xml中的TextView
<TextView android:id="@+id/txtMsg" android:layout_below="@id/txtName" android:layout_toRightOf="@id/llMain" android:autoLink="all" android:layout_marginLeft="5dp" android:layout_marginTop="5dp" android:layout_width="200dp" android:layout_height="wrap_content" android:singleLine="false" android:textSize="13sp" android:textColor="#FF606060" android:lineSpacingExtra="3dp" android:text="" />
我的TextView将显示的字符串将是此示例地址(String中没有HTML代码)
这是我到目前为止所做的事情
String REG_PATTERN="\\D{2}[縣市]?(\\D+市區|鎮區|鎮市|[鄉鎮市區]).+[號](.+[樓])?";
String SAMPLE="I am in 臺北市信義區市府路1號";
TextView txtMsg=(TextView)findViewById(R.id.txtMsg);
...
Linkify.addLinks(txtMsg, Linkify.ALL);
Linkify.addLinks(txtMsg, Pattern.compile(REG_PATTERN), "geo:0,0?q=");
我测试了我的模式“\ D {2} [县市]?(\ D +市区|镇区|镇市| [乡镇市区])。+号?”用几个正则表达式在线测试网站中的SAMPLE字符串,并成功找到地址,证明我的模式是正确的。
但是当我使用相同的模式“\ D {2} [县市]?(\ D +市区|镇区|镇市| [乡镇市区])时,这很奇怪。+号?”在android中,它没有找到任何匹配。
唯一不同的是我使\\\\
替换\
以适合Java的转义字符。
请帮助我克服这一点,欢迎任何建议。