Как сделать конкретные слова в Textview кликабельными
Я имею:
String desc="Drugs in this section include antimuscarinic compounds (section 4.3) and drugs believed to be direct relaxants of intestinal smooth muscle. The smooth muscle relaxant properties of antimuscarinic(section 4.4) and other antispasmodic drugs may be useful in irritable bowel syndrome(section 4.5) and in diverticular disease.The dopamine-receptor antagonists metoclopramide and domperidone (section 4.6) stimulate transit in the gut.";
я хочу сделать (section 4.3)
, (section 4.4)
, (section 4.5)
, (section 4.6)
кликабельные с разными целями кликов.
Как я могу это реализовать?
2 ответа
Вы можете использовать ClickableSpan, находя круглые скобки следующим образом:
TextView myTextView = new TextView(this);
String myString = "Drugs in this section include antimuscarinic compounds (section 4.3)";
int i1 = myString.indexOf("(");
int i2 = myString.indexOf(")");
myTextView.setMovementMethod(LinkMovementMethod.getInstance());
myTextView.setText(myString, BufferType.SPANNABLE);
Spannable mySpannable = (Spannable)myTextView.getText();
ClickableSpan myClickableSpan = new ClickableSpan()
{
@Override
public void onClick(View widget) { /* do something */ }
};
mySpannable.setSpan(myClickableSpan, i1, i2 + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Используйте html для получения ссылки: Android: текстовая гиперссылка
Используйте фильтры намерений схемы для обработки щелчков ссылок: как реализовать собственную схему URI на Android