2013-08-14 64 views
19

Trong ứng dụng Android của tôi, tôi có TextView. Văn bản có thể chứa liên kết. Đây là một ví dụ về một văn bản:Làm cách nào để tạo liên kết bình thường trong TextView có thể nhấp?

This is just a test. Click the following link http://www.google.com to visit Google.

Lưu ý rằng văn bản là không trong HTML; nó sẽ chỉ là một văn bản thông thường.

Tôi muốn làm điều gì đó như textView.parseLinks(), sau đó trong TextView, http://www.google.com sẽ được siêu liên kết và có thể nhấp để mở trang.

Điều này có khả thi không?

Cảm ơn

+0

Bạn nói: 'văn bản không phải là HTML, nó sẽ chỉ là văn bản thông thường mà một người bình thường sẽ đưa vào.' Nếu người dùng sẽ đưa vào văn bản, thì đó là EditText hay TextView? Câu hỏi của tôi là người dùng sẽ đặt văn bản hoặc nó sẽ được xác định trước? –

+0

Sẽ không có hai hoạt động, một trong những nơi họ có một chỉnh sửa văn bản nhiều dòng, được lưu vào cơ sở dữ liệu. Người dùng sẽ không biết html, vì vậy họ sẽ đưa vào văn bản và liên kết mà không cần html. Sau đó, trên chế độ xem hiện tại, văn bản mà họ đặt trước khi được tải xuống và đặt trên chế độ xem văn bản. – omega

Trả lời

63

Hãy thử và bao gồm trong TextView định nghĩa trong tập tin XML:

<TextView 
    ... 
    android:autoLink="web"/> 

Các tài liệu của android:autoLink nói:

Controls liệu liên kết như url và địa chỉ email được tự động tìm thấy và chuyển đổi thành liên kết có thể nhấp

Vì vậy, để tự động tìm liên kết, các điều trên có thể hữu ích. Hãy thử xem.

+0

giải pháp inbuilt tuyệt vời bao giờ .. thanxx người đàn ông cho một thông tin quan trọng như vậy. –

+0

(superb.inbuilt) nếu chúng ta nhập các từ như trong ngoặc đơn, nó cũng hiển thị liên kết cho những .. làm thế nào tôi có thể ngăn chặn rằng – zacharia

+0

Chính xác những gì tôi đang tìm kiếm! Cảm ơn!!! –

6

Điều gì đó như thế này sẽ hoạt động.

TextView tv = (TextView) findViewById(R.id.textView1); 
    String text = "This is just a test. Click this link here <a href=\"http://www.google.com\">Google</a> to visit google."; 
    tv.setMovementMethod(LinkMovementMethod.getInstance()); 
    tv.setText(Html.fromHtml(text)); 
+1

Văn bản đã cho sẽ không là HTML. Vì vậy, điều này sẽ không làm việc cho tôi ... – omega

2

thử this..it đang làm việc cho tôi

<TextView 
    android:id="@+id/text" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:autoLink="web" 
    android:text="click here http://www.google.com/"/> 
5
<TextView 
     ... 
     android:autoLink="..."/> 
//set ... by web|email|none|phone|map|all according to your need 

// thay đổi liên kết màu thêm bên dưới dòng android: textColorLink = "@ màu/yourcolor"

1

Cách đơn giản để chọn số URL và Số điện thoại trong TextView:

TextView textView = (TextView)findViewById(R.id.textView1); 
textView.setText("some url is www.google.com phone 7504567890 another url lkgndflg.com "); 
Linkify.addLinks(textView, Linkify.WEB_URLS | Linkify.PHONE_NUMBERS);