我的layout.xml片段:
<TextView
android:id="@+id/textViewPhoneValue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="phone"
android:textColorLink="@color/color_blue" />
行。现在手机显示为蓝色链接。当点击它打开电话来电时。好的。
我使用 android:autoLink =“phone”,因为它正确格式化了许多电话号码。 现在我需要处理用户点击此链接并使用我的自定义处理程序。 textViewPhoneValue 可以包含五个电话号码。我需要点击第二个电话号码才能获得此号码。有可能吗?
答案 0 :(得分:1)
更好的方法是多个textView,但如果你不能这样做。 您可以使用spannable文本添加多个单击功能
String s="Phone1 Phone2 Phone3";
SpannableString ss = new SpannableString(s);
String first =" Phone1";
String second =" Phone2";
String third =" Phone3";
int firstIndex = s.toString().indexOf(first);
int secondIndex = s.toString().indexOf(second);
ClickableSpan firstwordClick = new ClickableSpan() {
@Override
public void onClick(View widget) {
///............
}
};
ClickableSpan secondwordClick = new ClickableSpan() {
@Override
public void onClick(View widget) {
///............
}
};
ss.setSpan(firstwordClick,firstIndex, firstIndex+first.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(secondwordClick,secondIndex, secondIndex+second.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setLinksClickable(true);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(ss,BufferType.SPANNABLE);
这不是一个很好的例子,但你可以得到主要的想法。