原谅如果它是一个菜鸟问题。我将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;
}
});
答案 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