我有一个包含EditText的片段,我正在尝试设置键盘事件,但它似乎不起作用。actionId始终为0。
<android.support.v7.widget.AppCompatEditText
android:id="@+id/input_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_name"
android:inputType="text"
android:maxLines="1"
android:imeOptions="actionNext"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
name.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_NEXT) {
save();
handled = true;
}
return handled;
}
});我还尝试使用以下代码设置按钮标签,但不起作用
name.setImeActionLabel("Next", KeyEvent.KEYCODE_ENTER);发布于 2017-04-04 15:43:29
我想你误会了android:digits
如果设置,则指定此TextView具有数字输入法,并且这些特定字符是它将接受的字符。如果设置此项,则表示numeric为true。默认值为false。
android:digit指定此editText将只接受数字。在您的示例中,您使用没有数字的触发器来定义它,这将导致 no 。
此外,如果设置 setImeActionLabel()**.**,则actionId将为0
Ps,
如果你想过滤editText的输入,你应该选择InputFilter。
发布于 2017-04-04 16:47:08
指定字母表的android:digits仅接受字母表,并忽略键盘上的任何其他按钮单击。因此,删除EditText的digits属性,并对java文件中输入的数据添加验证。
https://stackoverflow.com/questions/43200513
复制相似问题