我有TextView
将Linkify应用于该链接以创建我的链接。
Linkify.addLinks(mTextView, Linkify.ALL);
现在,当用户点击链接时,应用会在本机浏览器中打开链接。但我希望用户可以通过显示"使用"完成操作来选择他们喜欢的浏览器。对话框。
如何将此功能添加到链接链接?
答案 0 :(得分:1)
您可以使用ClickableSpan,并使用它设置textview
公共类LinkSpan扩展了ClickableSpan {
private OnClickListener listener;
public LinkSpan(OnClickListener listener){
this.listener = listener;
}
@Override
public void onClick(View widget) {
listener.onClick(widget);
}
}
public class LinkifyUtil {
private Activity activity;
public LinkifyUtil(Activity activity){
this.activity = activity;
}
public void addAutoChooserLink(final Intent intent,TextView text){
String source = text.getText().toString();
String pattern = "Android";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(source);
SpannableString s = new SpannableString(source);
while(m.find()){
s.setSpan(new LinkSpan(new OnClickListener(){
@Override
public void onClick(View v) {
//you can define the intent
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://developer.android.com"));
Intent.createChooser(intent, "Choose App");
activity.startActivity(intent);
}
}), m.start(), m.start()+pattern.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
}
text.setText(s);
text.setMovementMethod(LinkMovementMethod.getInstance());
}
}
您可以像这样使用LinkifyUtil:
Intent intent = new Intent();
LinkifyUtil linkify = new LinkifyUtil(this);
linkify.addAutoChooserLink(intent, text);