2012-05-11 26 views

Trả lời

3

Tôi đã giải quyết sự cố này.
Chỉ cần thiết lập TextView như thế này:

text.setTextIsSelectable(true); 
+0

cuộc gọi yêu cầu API 11 –

4

Tôi nghĩ rằng bạn có thể ghi đè lên phương thức onKeyDown(), làm cho nó không làm gì ngoài trả về true. Nó sẽ bắt các phím bấm từ bàn phím và phủ nhận chúng trước khi chúng có thể đi vào văn bản trong EditText.

Bạn có thể cũng try setting editable false như thế này

android:editable="false" 

trên EditText trong cách bố trí xml của bạn. Tuy nhiên tôi không chắc chắn nếu điều này sẽ cho phép bạn vẫn nổi bật và sao chép, nhưng nó là giá trị một shot.

+1

Xin cảm ơn, Tim! Nhưng android: có thể chỉnh sửa không được dùng nữa trên Android Ice Cream Sandwich. – Limp

+0

họ có để lại một ghi chú cho bạn biết phải sử dụng thay thế nào không? – FoamyGuy

+1

Có, họ nói với tôi sử dụng TextView thay vào đó. Nhưng không thể chọn TextView. – Limp

14

text.setTextIsSelectable(true) đòi hỏi API 11. Đối với những người sử dụng thấp hơn API: Trong sử dụng xml:

android:inputType="none" 
android:textIsSelectable="true" 

Điều này sẽ làm EditText bạn không thể chỉnh sửa nhưng có thể lựa chọn.

+0

Tôi có thể xác nhận rằng trên API 10 (được thử nghiệm trên 2.3.4 và 2.3.6) hai dòng trên không hoạt động. EditText vẫn có thể chỉnh sửa và bàn phím bật ra .. – Bruce

+0

Sau đó, giải pháp là gì? –

+1

Xem câu trả lời đầy đủ của tôi được đăng tại http://stackoverflow.com/a/20173020/1241783. Không phải là rất tự hào về cách hacky nhưng nó là cách duy nhất mà tôi biết cho đến bây giờ. Hãy cho tôi biết nếu ai đó biết cách tốt hơn cho phiên bản API <10. Xin cảm ơn! – Bruce

0

Althouth android:editablephản và Lint gợi ý để sử dụng inputType, Nó dường như không làm việc. Vì vậy, android:editable="false" dường như là giải pháp tốt nhất có thể cho tất cả các phiên bản Android.

<EditText 
    android:id="@+id/editText" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:editable="false" 
    android:textIsSelectable="true" 
    tools:ignore="Deprecated" /> 
Các vấn đề liên quan