2014-01-03 2 views
2

У меня есть несколько ссылок в моем приложении. Один для веб-сайта, один для номера телефона и один для электронной почты. Электронная почта и телефонные ссылки работают и доступны по клику, однако по какой-либо причине гиперссылка на сайт по-прежнему не доступна. Есть предположения? Код ниже.Android - гиперссылка не может быть нажата

<string name="website" ><a href="http://www.XXXXXX.com">XXXXXX Website</a></string> 
<string name="email" >[email protected]</string> 
<string name="phone" >P: XXX.XXX.XXXX</string> 
<string name="fax" >F: XXX.XXX.XXXX</string> 

Выше мои строки и ниже файл XML, который отображает их:

<TextView android:id="@+id/website" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/imageButtonTwitter" 
      android:gravity="center_horizontal" 
      android:padding="10dp" 
      android:autoLink="web" 
      android:clickable="true" 
      android:linksClickable="true" 
      android:text="@string/website" /> 

<TextView android:id="@+id/email" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/website" 
      android:gravity="center_horizontal" 
      android:padding="10dp" 
      android:autoLink="email" 
      android:linksClickable="true" 
      android:text="@string/email" /> 

<TextView android:id="@+id/phone" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/email" 
      android:gravity="center_horizontal" 
      android:padding="10dp" 
      android:autoLink="phone" 
      android:linksClickable="true" 
      android:text="@string/phone" /> 

<TextView android:id="@+id/fax" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/phone" 
      android:gravity="center_horizontal" 
      android:padding="10dp" 
      android:text="@string/fax" /> 

Как я уже сказал .. остальные кликабельны и работают. Я тестировал его на двух эмуляторах, а также на своей Galaxy S4. Любые мысли, почему веб-сайт не доступен для кликов?

+0

Это, кажется, та же проблема: [http://stackoverflow.com/questions/11413372/textview-hyperlink-is-not-working?rq=1][1] [1]: http://stackoverflow.com/questions/11413372/textview-hyperlink-is-not-working?rq=1 – Jim

ответ

5

Вы должны вызвать это на TextView:

TextView tv = (TextView) findViewById(R.id. website); 
tv.setMovementMethod(LinkMovementMethod.getInstance()); 

Вы должны удалить из вашего TextView:

android:autoLink="web" 
android:clickable="true" 
android:linksClickable="true" 
+0

Я пробовал это раньше и взял его, потому что он не работал. Я попробовал это снова, чтобы убедиться, и все еще нет кубиков. Без этого фрагмента java гиперссылка по крайней мере голубая, как если бы она была нажата, теперь ссылка белая и не кликабельная. –

+0

Я думаю, вам нужно удалить различные кликируемые атрибуты в вашем текстовом виде, и это единственное различие между вашим и моим. Я буду обжаловать ответ –

+0

Еще не повезло. :/ Редактировать: мне просто нужно было снять атрибут autoLink, и это хорошо! Спасибо за помощь. Лучший ответ. –

0

Я не очень опытный программист андроида, но мои маленькие замечания которые могут быть полезны (по крайней мере, я надеюсь):

Не добавляйте эти дополнительные параметры к TextView. Просто android:text и android:clickable="true" достаточно для того, чтобы иметь html-ссылку.

И следующий при установке текста используйте:

TextView myTextView = (TextView) findViewById(R.id.myId); 
myTextView.setText(Html.fromHtml(htmlText)); 

Подробнее здесь: android.text.Html

Я предполагаю, что вам не хватает, что Html.fromHtml

Я надеюсь, что это помогает.

0

Добавьте эту строку -

htmlContent.setMovementMethod (LinkMovementMethod.getInstance());

Смежные вопросы