2012-02-27 34 views
29

Tôi đang cố gắng để đặt một EditText như không thể chỉnh sửa với mã này:EditText không thể chỉnh sửa

<EditText android:id="@+id/outputResult" 
      android:inputType="text" 
      android:editable="false" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/result" /> 

tôi đã để thêm video này cho không thể chỉnh sửa

android:focusable="false" 

Tôi có làm điều gì sai?

Cảm ơn bạn verry nhiều

+0

những gì bạn muốn thực sự? –

+0

biết tại sao không chỉ hoạt động với android: editable = "false". Cảm ơn. – Jjreina

+0

@ Zortkun: Đó chính là điều OP yêu cầu. – Squonk

Trả lời

88

android:editable="false" nên làm việc, nhưng it is deprecated, bạn nên sử dụng android:inputType="none" để thay thế.

Ngoài ra, nếu bạn muốn làm điều đó trong mã bạn có thể làm điều này:

EditText mEdit = (EditText) findViewById(R.id.yourid); 
mEdit.setEnabled(false); 

Đây cũng là một lựa chọn khả thi:

EditText mEdit = (EditText) findViewById(R.id.yourid); 
mEdit.setKeyListener(null); 

Nếu bạn đang đi để làm EditText của bạn không thể chỉnh sửa, tôi có thể đề xuất sử dụng tiện ích TextView thay vì EditText, vì việc sử dụng EditText có vẻ vô nghĩa trong trường hợp đó.

EDIT: Altered một số thông tin kể từ khi tôi đã phát hiện ra rằng android:editable bị phản đối, và bạn nên sử dụng android:inputType="none", nhưng có một lỗi về nó trên mã android; Vì vậy, hãy kiểm tra this.

+0

Cảm ơn với tine work thay thế nhưng android: editable = "false" no – Jjreina

+2

Sử dụng textview là tốt hơn trong trường hợp này là –

2
<EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/editTexteventdate" 
      android:background="@null" 
      android:hint="Date of Event" 
      android:textSize="18dp" 
      android:textColor="#fff" 
      android:editable="false" 
      android:focusable="false" 
      android:clickable="false" 

      /> 

Thêm này

android: có thể chỉnh sửa = "false"

android: đặt tiêu điểm = "false"

android: nhấp được = "false"

công việc của nó cho tôi

+0

Vì có thể chỉnh sửa được sử dụng thay thế này: 'android: inputType =" none "' (cùng với những cái khác bạn có). – BlueBoy

+0

Không phải vì nó phù hợp với bạn nên nó cũng làm việc cho chúng tôi. Bạn đã đăng bài này vào ngày 19 tháng 5 năm nay để bạn phải biết rằng bạn đã cung cấp câu trả lời không được chấp nhận? Thôi nào ... –

3

Trong trường hợp bạn muốn thực hiện một EditText không thể chỉnh sửa từ mã:

void disableInput(EditText editText){ 
    editText.setInputType(InputType.TYPE_NULL); 
    editText.setTextIsSelectable(false); 
    editText.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v,int keyCode,KeyEvent event) { 
       return true; // Blocks input from hardware keyboards. 
     } 
    }); 
} 

Trong trường hợp bạn muốn loại bỏ các đường ngang của EditText của bạn, chỉ cần thêm:

editText.setBackground(null); 

Nếu bạn muốn để cho phép người dùng sao chép nội dung của EditText, sau đó sử dụng:

editText.setTextIsSelectable(true); 
Các vấn đề liên quan