Diberdayakan oleh Blogger.

Senin, 29 Februari 2016

Link yang dapat diklik dari String untuk TextView Android

by Joielechong sipayung  |  in pemrograman visual at  Senin, Februari 29, 2016



Contoh project dari artikel ini dapat di download Di sini.

Ada beberapa cara tersembunyi yang dapat kita pakai untuk membuat link url dalam sebuah string bekerja di AppCompatTextView pada Android.

Saya menemukan bahwa di custom view (sejujurnya, saya masih mencoba dengan Material Dialogs), sebuah string dengan url hanya bekerja jika kita menggunakan setMovementMethod untuk TextView


Pada Custom View

Jika kita ingin sebuah string yang mengandung url dan kode html di custom view seperti ini:
 Created by <b>Joielechong</b> (<a href="http://www.rilixtech.com">rilixtech.com</a>)  
Dengan TextView di layout seperti file xml di bawah ini:
1:  <?xml version="1.0" encoding="utf-8"?>  
2:  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3:    android:id="@+id/sample_layout"  
4:    android:layout_width="match_parent"  
5:    android:layout_height="match_parent"  
6:    >  
7:    
8:   <android.support.v7.widget.AppCompatTextView  
9:     android:id="@+id/sample_layout_title"  
10:     android:layout_width="wrap_content"  
11:     android:layout_height="wrap_content"  
12:     android:textSize="18sp"  
13:     />  
14:  </RelativeLayout>  
Kita tidak akan bisa membuatnya bekerja jika menggunakan attribut android:autoLink="all" atau android:linksClickable="true". Jadi, kode di bawah ini Tidak Akan Bekerja:
1:  <?xml version="1.0" encoding="utf-8"?>  
2:  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3:    android:id="@+id/sample_layout"  
4:    android:layout_width="match_parent"  
5:    android:layout_height="match_parent"  
6:    >  
7:    
8:   <android.support.v7.widget.AppCompatTextView  
9:     android:id="@+id/sample_layout_title"  
10:     android:layout_width="wrap_content"  
11:     android:layout_height="wrap_content"  
12:     android:text="@string/test_string_1"  
13:     android:textSize="18sp"  
14:     android:autoLink="all"  
15:     android:linksClickable="true"  
16:     />  
17:    
18:  </RelativeLayout>  
Untuk membuatnya bekerja, kita harus menambahkan baris berikut pada kelas:
 textView.setMovementMethod(LinkMovementMethod.getInstance());  
Jangan lupa untuk menghapus attribut android:autoLink="all" di layout xml karena attribut ini akan menyebabkan kode di atas tidak berfungsi sama sekali.


Pada Normal View

Jika kita menggunakan setMovementMethod untuk TextView tanpa menggunakan attribut android:autoLink="all" di layout, link url akan bekerja. Link url juga akan bekerja jika kita hanya menggunakan android:autolink="all". Tetapi jika kita hanya menggunakan attribut android:linksClickable="true" maka link url tidak akan bekerja sama sekali.

Download project artikel ini  Di sini.

Referensi:
How do I make links in a TextView clickable?
I want text view as a clickable link
Android: textview hyperlink
Make a hyperlink textview in android
How to make normal links in TextView clickable?

0 comments:

Silahkan tinggalkan komentar anda: