2013-08-13 26 views
10

Tôi có một số EditText trên Android tôi muốn sử dụng bất kỳ url nhúng nào có thể nhấp được. Tôi đã sử dụng lớp Linkify, lớp này đã biến chúng thành màu xanh lam và gạch chân chúng. Tuy nhiên, tôi không thể tìm ra cách thực sự làm cho chúng có thể nhấp được.Làm cách nào để tạo liên kết trong EditText có thể nhấp?

Cảm ơn!

Trả lời

13

XML:

android:linksClickable="true" 
android:autoLink="web|email" 

JAVA:

TextView textView = (TextView) findViewById(R.id.textViewId); 
textView.setText(Html.fromHtml(html)); 
textView.setMovementMethod(LinkMovementMethod.getInstance()); 
+3

Điều này không hiệu quả đối với tôi. Tôi đã sử dụng phiên bản XML không có may mắn. Văn bản trông giống như một liên kết nhưng không thể nhấp được. – lowellk

+0

Do u có sử dụng 'textView.setText (Html.fromHtml (html));'? – squixy

+0

Bạn không cần sử dụng 'Linkify.addLinks (textView, Linkify.ALL);' sau đó. – squixy

10

Đối với chỉnh sửa văn bản tôi quản lý để có được các liên kết có thể click vào theo cách sau. Đầu tiên tôi thực hiện một MovementMethod Tuỳ chỉnh như mô tả here

Java

(Tạo chỉnh sửa văn bản của bạn từ xml hoặc ngữ cảnh)

editText.setLinksClickable(true); 
editText.setAutoLinkMask(Linkify.WEB_URLS); 
editText.setMovementMethod(CustomMovementMethod.getInstance()); 
//If the edit text contains previous text with potential links 
Linkify.addLinks(editText, Linkify.WEB_URLS); 

Sau đó, để quản lý mà các url trông giống như liên kết trong khi các loại dùng

editText.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 


     } 

     @Override 
     public void afterTextChanged(Editable s) { 

       Linkify.addLinks(s, Linkify.WEB_URLS); 

     } 
    }); 
+0

Điều này là hoàn hảo. Có cách nào để thực hiện điều này với khả năng phát hiện số điện thoại và làm nổi bật chúng không? –

+2

Có @Collinux lớp [Linkify] (http://developer.android.com/reference/android/text/util/Linkify.html) hỗ trợ 4 loại: Liên kết web, Số điện thoại, email và địa chỉ bản đồ – pleonasmik

Các vấn đề liên quan