Thuộc tính autoLink
có lỗi gây phiền nhiễu: nếu bạn nhấp vào trong ví dụ của bạn vào số điện thoại, sau đó trở lại và nhấp vào liên kết url thứ hai - nó sẽ mở lại số điện thoại. Thuộc tính này hoạt động rất xấu với nhiều liên kết, mà tôi đã thực hiện lớp của riêng tôi, đây là liên kết trên Github ClickableLinksTextView.java
Trong ví dụ của bạn, bạn có thể thay thế lớp TextView
của bạn theo hạng ClickableLinksTextView
tôi trong xml-bố trí và thay đổi mã như thế này:
ClickableLinksTextView textView = (ClickableLinksTextView)view.findViewById(R.id.mytext);
textView.setText("My text: +4412345678 Go to website: www.google.com Blah blah");
Linkify.addLinks(textView, Linkify.ALL);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
textView.setMovementMethod(ArrowKeyMovementMethod.getInstance());
textView.setTextIsSelectable(true);
// the autoLink attribute must be removed, if you hasn't set it then ok, otherwise call textView.setAutoLink(0);
}
nguyên nhân ban đầu của vấn đề trong câu hỏi của bạn là lớp LinkMovementMethod
và textIsSelectable
thuộc tính không tương thích chút nào, thậm chí các nhà phát triển hệ điều hành Android thừa nhận điều này trong the Android OS source code.
Không thay đổi phương thức di chuyển cho văn bản hỗ trợ lựa chọn văn bản vì nó sẽ ngăn chặn chuyển dịch con trỏ tùy ý.
Nếu độ xem văn bản là lựa chọn, chỉ 2 đúng phong trào các giá trị phương pháp là null
và ArrowKeyMovementMethod
. Đó là lý do tại sao tôi đặt ArrowKeyMovementMethod
một cách rõ ràng trong ví dụ của tôi, vì Linkify.addLinks
đặt phương thức di chuyển không chính xác và tôi nên hoàn nguyên.
Vì lỗi của thuộc tính autoLink, đó là do nhà phát triển Android chưa sao chép chính xác phát hiện liên kết. Bạn có thể xem ví dụ mã trong câu trả lời của @cheng yang, mã chỉ nhận liên kết đầu tiên cho dù bạn có bao nhiêu.
Bạn đang làm gì không hoạt động? Không cố gắng để làm cho nó liên kết chỉ làm việc? –
Khi tôi liên kết, tôi có thể nhấp vào url và điện thoại. Nhưng khi tôi làm cho nó có thể lựa chọn nhấp chuột là không thể nữa – pixel