没有为maxLines =“1”触发EditorAction

时间:2017-08-27 13:42:05

标签: android

原谅如果它是一个菜鸟问题。我将android:singleLine="true"(现已弃用)替换为android:maxLines="1",现在setOnEditorActionListener似乎无法触发。

<EditText
    android:id="@+id/listItemET"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:imeOptions="actionDone"
    android:text="List Item"/>

EditorActionListener用于编辑文字。

listItemET.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if(actionId == EditorInfo.IME_ACTION_DONE) {
            Toast.makeText(context, "Clicked", Toast.LENGTH_SHORT).show();
        }
        return true;
    }
});

2 个答案:

答案 0 :(得分:2)

在EditText中使用android:inputType="text"以及maxLines属性。示例代码段:

<EditText
android:id="@+id/editText"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:maxLines="1"     
android:inputType="text"/>    <----- add this 

答案 1 :(得分:2)

引用docs

  

在可编辑文本上使用时,inputType属性的值必须为   结合maxLines属性的textMultiLine标志   应用

所以你应该修改你的代码:

<EditText
    android:id="@+id/listItemET"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:imeOptions="actionDone"
    android:text="List Item"
    android:inputType="text | textMultiLine"/>  // As per the doc says