编辑解决部分问题
我有一个 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 将显示的字符串会像这个示例地址(字符串中没有 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 的转义字符。
请帮助我克服这个问题,欢迎提出任何建议。