2013-07-26 1 views
15
<TextView 
    android:id="@+id/link" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:text="Forget password?" 
    android:autoLink="all" 
    android:linksClickable="true" 
    android:textColor="@color/lgreen" 
    android:textStyle="italic" 
    /> 

Android выделяет ссылки в TextView, но они не отвечают на клики. Может кто-то сказать мне, как я могу сделать это как кликабель и перейти к другой ссылке. Я пробовал больше раз, видя примеры. но я не могу. Может ли кто-нибудь объяснить мне, как изменить текстовое представление как ссылку на клики.Я хочу, чтобы текстовое изображение было доступно по ссылке

+0

Вот ссылка http://stackoverflow.com/questions/9852184/android-textview-hyperlink – KOTIOS

ответ

46

Все испытано и работа 100%
ниже - полный пример
Андроид: autoLink = "web"
Образец Xml

<TextView 
     android:id="@+id/txtLostpassword" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:autoLink="email" 
     android:gravity="center" 
     android:padding="20px" 
     android:text="@string/lostpassword" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

    <TextView 
     android:id="@+id/txtLostpassword" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:autoLink="web" 
     android:gravity="center" 
     android:padding="20px" 
     android:text="@string/defaultpassword" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

Строка в string.xml

<string name="lostpassword">If you lost your password please contact <a href="mailto:[email protected]?Subject=Lost%20Password" target="_top">[email protected]</a></string> 

<string name="defaultpassword">User Guide <a href="http://www.cleverfinger.com.au/user-guide/">http://www.cleverfinger.com.au/user-guide/</a></string> 
6

В файле строки поместить этот код

<string name="link">'<a href="http://www.www.com" >ForGet Password</a>'</string> 

и в файле XML

android:text="@string/link" 
+0

ждать, я буду проверить его и сказать – RameshJaga

+0

в основной программе мы не хотим вызывать textview для перехода от одного вида деятельности к другому. @ Gaurav – RameshJaga

+0

текстовый вид не кликабельный брат.что я могу сделать сейчас. – RameshJaga

3

это Отредактированный ответа

Привет Вы можете попробовать путем замены в Планируя. xml файл

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:text="visit the site at www.google.com from here" 
    android:autoLink="all" 
    android:clickable="true" 
    android:linksClickable="true" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

Я пробовал, и это наверняка сработает. и лечит "www.google.com" в качестве веб-ссылки

+0

Я добавил, что сказал выше. но он показывает ошибку в строке, подобной этой множественной аннотации, найденной в этой строке: \t - error: Apostrophe, которому не предшествует \ (in ') \t - error: Найдено текст «Забыли пароль?» где тег элемента – RameshJaga

+0

сейчас как быстрое решение попробуйте написать «ForGet Password» вместо R.string.link и забудьте строку .xml –

+0

Я не могу понять, что вы пытаетесь сказать. – RameshJaga

7

Вы можете добавить щелчок слушателю TextView и начать WebSearch:

textView.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View view) 
    { 
     Intent browser= new Intent(Intent.ACTION_VIEW, Uri.parse(PASTE_YOUR_URL_HERE)); 
     startActivity(browser); 
    } 

}); 

и XML выглядит следующим образом:

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/link_string" 
    android:textSize="14dp" 
    android:autoLink="web" /> 
0

Просто добавьте OnClick тег в TextView, которая равна определенной функции. Так же, как показано ниже

<TextView 
    android:id="@+id/link" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:text="Forget password?" 
    android:autoLink="all" 
    android:linksClickable="true" 
    android:textColor="@color/lgreen" 
    android:textStyle="italic" 
    android:onClick="callFunction"/> 
1

В ваш метод onCreate() поместить этот код:

TextView clickableTextLink = (TextView)findViewById(R.id.your_textview_id); clickableTextLink.setMovementMethod(LinkMovementMethod.getInstance()); 

Я пытался несколько решений. Но это отлично сработало для меня.

1

это самый легкий и понятный код

TextView link = (TextView) findViewById(R.id.hyper); 
String linkText = "This is my website <a href='http://programondaspot.blogspot.com'>Programondaspot</a> ."; 
link.setText(Html.fromHtml(linkText)); 
link.setMovementMethod(LinkMovementMethod.getInstance()); 

Заканчивать этот post!

СЧАСТЛИВЫЙ КОДИРОВКА!

0

Вот простая реализация испытано Android N

String termsText = "By registering, you are agree to our"; 
    String termsLink = " <a href=https://www.yourdomain.com/terms-conditions.html >Terms of Service</a>"; 
    String privacyLink = " and our <a href=https://www.yourdomain.com/privacy-policy.html >Privacy Policy</a>"; 
    String allText = termsText + termsLink + privacyLink; 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 
     ((TextView) findViewById(R.id.text_terms_conditions)).setMovementMethod(LinkMovementMethod.getInstance()); 
     ((TextView) findViewById(R.id.text_terms_conditions)).setText(Html.fromHtml(allText, Html.FROM_HTML_MODE_LEGACY)); 
    } else { 
     ((TextView) findViewById(R.id.text_terms_conditions)).setMovementMethod(LinkMovementMethod.getInstance()); 
     ((TextView) findViewById(R.id.text_terms_conditions)).setText(Html.fromHtml(allText)); 
    }