0

编辑解决部分问题

我有一个 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 的转义字符。

请帮助我克服这个问题,欢迎提出任何建议。

4

0 回答 0