2+ bağlantı içeren, temel HTML işleyen bir TextView var. Bağlantılara yapılan tıklamaları yakalamam ve bağlantıları açmam gerekiyor - kendi dahili Web Görünümümde (varsayılan tarayıcıda değil).
Bağlantı oluşturmanın üstesinden gelmenin en yaygın yöntemi şuna benzer:
String str_links = "<a href='http://google.com'>Google</a><br /><a href='http://facebook.com'>Facebook</a>";
text_view.setLinksClickable(true);
text_view.setMovementMethod(LinkMovementMethod.getInstance());
text_view.setText( Html.fromHtml( str_links ) );
Ancak bu, bağlantıların varsayılan dahili web tarayıcısında açılmasına neden olur ("İşlemi Şunu Kullanarak Tamamla ..." iletişim kutusunu gösterir).
Bağlantı tıklandığında doğru şekilde tetiklenen bir onClickListener uygulamayı denedim, ancak HANGİ bağlantının tıklandığını nasıl belirleyeceğimi bilmiyorum ...
text_view.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// what now...?
}
});
Alternatif olarak, özel bir LinkMovementMethod sınıfı oluşturmayı ve onTouchEvent'i uygulamayı denedim ...
public boolean onTouchEvent(TextView widget, Spannable text, MotionEvent event) {
String url = text.toString();
// this doesn't work because the text is not necessarily a URL, or even a single link...
// eg, I don't know how to extract the clicked link from the greater paragraph of text
return false;
}
Fikirler?
Örnek çözüm
Bağlantıları bir HTML dizesinden ayrıştıran ve tıklanabilir hale getiren ve ardından URL'ye yanıt vermenizi sağlayan bir çözüm buldum .
span.getURL()
" idi.) Şu anda kabul edilen cevaptan daha iyi olduğu için, bir cevap olarak bile gönderebilirsiniz!