http://androidren.com/index.php?qa=398&qa_1=android%E4%B8%ADtextview%E4%B8%8D%E8%83%BD%E8%AF%86%E5%88%AB%E7%94%B5%E4%BF%A1%E5%8F%B7%E7%A0%8111888%E7%9A%84%E9%97%AE%E9%A2%98
<TextView android:id="@+id/xxx_text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="24dp" android:layout_marginRight="24dp" android:layout_marginTop="16dp" android:autoLink="email|phone|web" android:gravity="left" android:linksClickable="true" android:text="拨打 11888." android:textColor="#393939" android:textColorLink="#112233" android:textSize="15sp" android:visibility="visible" />
布局文件中如上设置,预览的时候可以识别出11888. 但真机运行缺不能识别。
最后只能在代码中手动设置才能解决。
SpannableString spanableInfo = new SpannableString( "拨打 11888"); spanableInfo.setSpan(new Clickable(), 3, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); telTextView.setText(spanableInfo); telTextView.setAutoLinkMask(Linkify.ALL); telTextView.setMovementMethod(LinkMovementMethod.getInstance());
class Clickable extends ClickableSpan {
public Clickable() { super(); } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setColor(getResources().getColor(R.color.color_red)); ds.setUnderlineText(true); } @Override public void onClick(View v) { Intent sIntent = new Intent(Intent.ACTION_DIAL); Uri uri=Uri.parse("tel:11888"); Intent intent=new Intent(); intent.setData(uri); startActivity(sIntent); } }