2012-04-18 36 views
5

Được thử nghiệm với Android 1.6 (4) và 2.3.3 (10).Android EditText inputType = "none" không hoạt động, trở thành "textMultiLine"

Tôi đã thực hiện một ứng dụng thử nghiệm tối giản để chứng minh điều này, tất cả nó làm là tải xml với:

setContentView(R.layout.main); 

và xml là:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:inputType="none" 
    android:ems="10" > 

</EditText> 

Vấn đề :

khi đặt inputType="none" loại đầu vào thực tế trong khi thực thi đến textMultiLine(0x00020001), tôi đã kiểm tra nó bằng trình gỡ lỗi.

Mặt khác, nếu tôi sử dụng inputType="text", nó hoạt động như mong đợi.

Đây có phải là lỗi trong Android không?

Trả lời

12

tôi đã cùng một vấn đề: xác định các loại đầu vào thông qua xml đã không làm việc.

Sau đó, để sửa chữa nó, tôi đặt các loại đầu vào programatically:

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) 
    { 
    ... 
    editText1= (EditText) super.getActivity().findViewById(R.id.editText1); 
    editText1.setInputType(InputType.TYPE_NULL); // none... 
    ... 
    } 

đó làm việc cho tôi.

+4

tốt hơn để sử dụng 'setInputType (InputType.TYPE_NULL)' –

1

Sử dụng android:editable="false". Mặc dù nó không được chấp nhận nhưng nó hoạt động khi inputType không.

1

Sử dụng này

textView.setKeyListener(null); 
1

Đặt InputType = "none" xml không hoạt động, nhưng nếu bạn đang sử dụng databinding thì bạn có thể sử dụng cú pháp ràng buộc để đặt Kiểu đầu vào.

nhập khẩu các loại ..

<data> <import type="android.text.InputType" /> </data>

sau đó ràng buộc giá trị

<EditText android:id="@+id/edit_text" android:inputType="@{InputType.TYPE_NULL}" />

Các vấn đề liên quan