2013-06-18 4 views
0

У меня есть текст со ссылкой в ​​TextView. Теперь я хочу, чтобы браузер открыл ссылку, если пользователь нажмет на нее. Мой TextView выглядит так:Нажмите ссылку в TextView

<string name="Info">Go to <a href="www.google.com">Google</a></string> 

<TextView 
     android:id="@+id/Info" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="@dimen/OptionMarginBottom" 
     android:autoLink="web" 
     android:linksClickable="true" 
     android:text="@string/Info" /> 

Ссылка отображается в синем топе, но я не могу на нее нажимать. Почему это?

ответ

2

использовать этот метод

public static void addLink(TextView textView, String patternToMatch, 
     final String link) { 
    Linkify.TransformFilter filter = new Linkify.TransformFilter() { 
     @Override public String transformUrl(Matcher match, String url) { 
      return link; 
     } 
    }; 
    Linkify.addLinks(textView, Pattern.compile(patternToMatch), null, null, 
      filter); 
} 

и использовать в качестве

addLink(text, "^Android", "http://abhiandroidinfo.blogspot.in"); 
+0

Хорошо работает! Но мне нужно удалить «LinksClickable» и «AutoLink» из TextView. – Cilenco

1

Использование Linkify на вашем TextView

Linkify.addLinks(yourTextviewObject, Linkify.WEB_URLS); 

Linkify взять кусок текста и регулярного выражения и превращает все регулярное выражение совпадает с текстом в активные ссылки.

+0

не работает. Ничего не происходит – Cilenco

+0

textview содержит сайт? Что-то вроде http://www.google.com? , Если вы хотите использовать html-подход, у вас есть такой текст внутри текстового поля во время выполнения с помощью вашегоTextviewObject.setText (Html.fromHtml (getString (R.string.info)); – Blackbelt

+0

TextView содержит строку сверху с текстом и ссылку 'Перейти к Google' – Cilenco

0

Helper Метод:

public static void addLinks(TextView textView, String linkThis, String toThis) { 
     Pattern pattern = Pattern.compile(linkThis); 
     String scheme = toThis; 
     android.text.util.Linkify.addLinks(textView, pattern, scheme, new MatchFilter() { 
      @Override 
      public boolean acceptMatch(CharSequence s, int start, int end) { 
       return true; 
      } 
     }, new TransformFilter() { 

      @Override 
      public String transformUrl(Matcher match, String url) { 
       return ""; 
      } 
     }); 
    } 

Теперь использовать как ниже:

String weblink = "WebsiteName"; 
String url = course.getString(TAG_Info); 

TextView txtInfo= (TextView) findViewById(R.id.Info); 
txtInfo.setText(userCanSeeThis); 

addLinks(txtInfo, weblink, url); 
0

Легче способ сделать строку и добавить Link Text и в файле XML, сделать TextView:

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:autoLink="web" 
    android:text="@string/string_with_link" /> 
Смежные вопросы