actionDone imeOption doesn't work on EditText

2019-01-22 10:41发布

问题:

I have a problem using an EditText in Android 2.3.

I have an EditText defined with android:imeOptions="actionDone" property but when I'm writing by the virtual keyboard the return key doesn't detect the actionDone and it introduce a return line.

In Android 2.2 is working right.

<EditText android:layout_height="wrap_content"
    android:layout_width="fill_parent" 
    android:imeOptions="actionDone" />

回答1:

I have resolved this issue. I have added the android:singleLine="true" property and it works right.

<EditText android:layout_height="wrap_content"
    android:layout_width="fill_parent" 
    android:imeOptions="actionDone"
    android:singleLine="true" 
 />


回答2:

Another noteworthy point is that the android:imeOptions don't work if you specify android:digits. Not sure if this affects all android versions.



回答3:

Currently in Android Studio 2.2.3 if you use

android:singleLine="true"

IDE gives a warning that it has been deprecated use maxlines instead.

android:maxLines="1"

However maxLines does not solve the problem. The solution is to just add the attribute inputType. Example :

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/actionDoneDemo"
    android:layout_below="@id/nameET"
    android:imeOptions="actionDone"
    android:hint="Action Done Demo"
    android:inputType="text"/>