Android EditText inputType ="none"不起作用,变为"textMultiLine"

Rol*_*and 9 android android-widget android-layout

测试Android 1.6(4)和2.3.3(10).

我已经制作了一个简约的测试应用程序来演示这个,它所做的只是加载xml:

setContentView(R.layout.main); 
Run Code Online (Sandbox Code Playgroud)

而xml是:

<?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>
Run Code Online (Sandbox Code Playgroud)

问题:

inputType="none"在执行期间设置实际输入类型时textMultiLine(0x00020001),我已经用调试器检查了它.

另一方面,如果我使用inputType="text"它按预期工作.

这是Android中的错误吗?

jsa*_*arb 19

我有同样的问题:通过xml定义输入类型不起作用.

然后,要修复它,我以编程方式设置输入类型:

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

这对我行得通.

  • 最好使用`setInputType(InputType.TYPE_NULL)` (4认同)

sor*_*niv 10

使用android:editable="false". 即使它已被弃用,它也能在 inputType 不支持的情况下工作。


gho*_*555 6

据我所知,这是android代码中的一个错误.看看这个用于参考 - 如何在Android中通过XML编辑EditText?

GalDude33建议 -

    android:clickable="false" 
    android:cursorVisible="false" 
    android:focusable="false" 
    android:focusableInTouchMode="false"
Run Code Online (Sandbox Code Playgroud)


And*_*cus 6

设置InputType =“ none” xml不起作用,但是如果您正在使用数据绑定,则可以使用绑定语法来设置Input类型。

导入类型..

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

然后绑定值

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