EditTextでクリックされたリンクの URL を取得しようとしています。リンクに触れて、その URL で何かをしたい。私が得た最も近いものは、カーソルが置かれているスパンが URLSpan スタイルであるかどうかを判断することです:
int s1 = Math.max(mText.getSelectionStart(), 0);
int s2 = Math.max(mText.getSelectionEnd(), 0);
Spannable raw = new SpannableString(mText.getText());
CharacterStyle[] spans = raw.getSpans(s1, s2, CharacterStyle.class);
for (CharacterStyle span : spans) {
if(span.getClass().equals(android.text.style.URLSpan.class)){
//is a link, but what is the URL?
}
}
すべてを HTML 文字列に変換すると、プレーン テキストのカーソル位置を HTML テキストに関連付ける方法がわかりません。を使用して EditText 内のすべての URL を取得できますが、どの URLgetUrls()
がクリックされたかはまだわかりません。のようなことができればEditText.getPortion(start, end).getUrls()
、それはより近いものになりますが、これまでのところ、そのような方法は見たことがありません。