Thread BBS アプリを開発しました。スレッドには ListView を使用します。ListView にはいくつかの TextView があり、TextView にはいくつかの Clickable URLSpan があります。
textview1 私の名前
textview2 メッセージ メッセージ メッセージ。本文http://google.co.jp/ 本文 メッセージ メッセージ メッセージ。
以下のアクションを実行したいのですが、実行できません。
urlspan(link) 以外の行をタップすると、onListItemClick イベントが発生しました。urlspan をタップすると、onListItemClick イベントが発生せず、URLSpan の OnClick イベントが発生しました。
ListView の ArrayAdapter に以下のコードを記述します。
Spanned html = Html.fromHtml(body, new EmojiGetter(mContext), null);
SpannableString spannable = new SpannableString(html);
Pattern p = Pattern.compile("(http://google.co.jp/)");
Matcher m = p.matcher(spannable);
while(m.find()){
MyUrlSpan myUrlSpan = new MyUrlSpan("http://google.co.jp/", m.group(1));
spannable.setSpan(myUrlSpan, m.start(1), m.end(1), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
holder.body.setText(spannable, TextView.BufferType.SPANNABLE);
holder.body.setMovementMethod(LinkMovementMethod.getInstance());
holder.body.setFocusable(false);
holder.body.setFocusableInTouchMode(false);
しかし、textview2 をタップすると、onListItemClick イベントは発生していません。
このアクションをどのように実現できますか?