Tôi có một ListView trong hoạt động, và trong mỗi mục, tôi chèn một EditText để hiển thị văn bản của tôi. Tôi cần kéo tay cầm để chọn văn bản & sao chép văn bản nhưng không thể chỉnh sửa văn bản. Trên Android ICS, Tôi làm cách nào để thực hiện việc này?Cách tạo EditText có thể chọn nhưng không thể chỉnh sửa được trên Android Ice Cream Sandwich?
Trả lời
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);
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.
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.
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
Sau đó, giải pháp là gì? –
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
Althouth android:editable
là phả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" />
- 1. "Ice Cream Sandwich" và WRITE_APN_SETTINGS
- 2. Khởi chạy trình duyệt trên Ice Cream Sandwich
- 3. Tắt tính năng kiểm tra chính tả tích hợp trên Ice Cream Sandwich
- 4. Android 4 ICS Ice Cream Sandwich - khung nội tuyến có chứa hình thức
- 5. Làm thế nào để tạo kiểu cho một TabWidget trong Ice Cream Sandwich?
- 6. Nhận độ phân giải màn hình thực trên thiết bị Ice Cream Sandwich
- 7. EditText không thể chỉnh sửa
- 8. Intent.ACTION_VIEW URL video không làm việc trên Ice Cream Sandwhich
- 9. Không thể chỉnh sửa tệp xml nhưng có thể chỉnh sửa .java?
- 10. cách tạo spinner có thể chỉnh sửa trong Android?
- 11. Trường văn bản html có thể chọn nhưng không thể chỉnh sửa
- 12. Nối chuỗi không thể chỉnh sửa vào EditText
- 13. Chúng tôi có thể có văn bản không thể chỉnh sửa trong edittext
- 14. Đặt EditText tiếp theo tập trung và có thể chỉnh sửa trên KEY_DOWN
- 15. Phần tử 'Chọn' có thể chỉnh sửa
- 16. nội dung đã chọn có thể chỉnh sửa có thể chỉnh sửa và khôi phục
- 17. Django admin: làm cho có thể chỉnh sửa trong lĩnh vực add nhưng không thể chỉnh sửa
- 18. Cách chuyển đổi UILabel giữa có thể chỉnh sửa và không thể chỉnh sửa
- 19. JCombobox có thể chỉnh sửa được bật
- 20. Phiên PHP có thể được chỉnh sửa thủ công không?
- 21. Dòng mới và có thể chỉnh sửa được bằng các thẻ lồng nhau không thể chỉnh sửa
- 22. Android: không thể có hai addTextChangedListener cho hai EditText?
- 23. Cách tạo div có thể chỉnh sửa và có thể kéo
- 24. Trình giả lập Android không thể chỉnh sửa phần cứng
- 25. hàng có thể chỉnh sửa và không thể chỉnh sửa trong slickgrid
- 26. Android Chỉnh sửa căn chỉnh văn bản
- 27. có thể chỉnh sửa JComboBox
- 28. Java JTable - Chỉ tạo một cột có thể chỉnh sửa
- 29. Eclipse không thể tạo jar có thể chạy được - Không có tài nguyên nào được chọn
- 30. Thông báo bánh mì nướng của Android quá nhỏ trong Bánh kem Sandwich
cuộc gọi yêu cầu API 11 –