我正在从web应用程序向安卓手机发送消息,其中包含一些手机号码,但该手机号码无法点击,无法从那里设置呼叫。
这个怎么样?
如果可以使用TextView、
自动链接有两种方法
1) JavaCode 中的Linkify
ex>
public class LinkifyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView txtPhone1 = (TextView)findViewById(R.id.txtPhone1);
Linkify.addLinks(txtPhone1, Linkify.PHONE_NUMBERS);
TextView txtPhone2 = (TextView)findViewById(R.id.txtPhone2);
Linkify.addLinks(txtPhone2, Linkify.PHONE_NUMBERS);
TextView txtWeb = (TextView)findViewById(R.id.txtWeb);
Linkify.addLinks(txtWeb, Linkify.WEB_URLS);
}
}
all=>链接.all
电子邮件=>Linkify.EMAIL_ADDRESSES
address=>Linkify.MAP_ADDRESSES
web URL=>Linkify.web_URLS
电话号码=>Linkify.PHONE_NUMBERS
2) xml 中的自动链接
ex>
<TextView
android:id="@+id/txtAutoWeb"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:autoLink="phone"
android:text="01012341234" />
这个数字不包含-(连字符),这无关紧要。
您可以使用SpannableString
和/或SpannableStringBuilder
这里有一个关于它的问题
这是关于的文档
因此,您可能需要使用特殊分隔符分隔发送邮件然后将其添加到包装在SpannableString中的textView中例如data bla bla#SEP#+963xxxxxxx#SP#data2 bla bla
所以你得到这个字符串并将其拆分,然后应用SpannableString
String msg = getMsgFromServer();
String msgParts[] = msg .split("#SEP#");
检查上面的问题以完成,它在每个可扩展项目上都有onClick
的处理。