我有一个只接受小写字母字符的EditText,我使用digits
完成。
<EditText
android:id="@+id/play_edit_enter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:maxLength="1"
android:inputType="textNoSuggestions"
android:digits="qwertyuiopasdfghjklzxcvbnm"
android:layout_marginTop="100dip"
android:textSize="20sp"
android:layout_centerHorizontal="true"
android:imeOptions="actionDone"
/>
旁边还有一个执行操作的按钮。但是,我还希望能够在键盘上使用“Enter”键(缺少更好的名称)来调用该按钮。
progressEditText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
progressButton.performClick();
return true;
}
return false;
}
});
如果我摆脱android:digits="qwertyuiopasdfghjklzxcvbnm"
行,这样可以正常工作。但我想用那条线。也许它不起作用的原因是因为Enter键不包含在那些数字中?
问:如果是这种情况,我需要添加什么?或者,我怎么能这样做?
答案 0 :(得分:3)
如果我摆脱了android:digits =“qwertyuiopasdfghjklzxcvbnm”行,这样可以正常工作。但我想用那条线。
您应该删除该行,因为它不会按照您的想法执行。它实际上指定EditText只接受数字,并且只接受您在值中指定的数字,在您的情况下为"qwertyuiopasdfghjklzxcvbnm"
,显然没有数字。
另见the docs
<强>机器人:位强>
如果设置,则指定此TextView具有数字输入方法,并且这些特定字符是它将接受的字符。如果设置了此项,则表示数字为true。默认值为false。
我知道它是TextView,但EditText从TextView继承该属性。
你可以做的就是检查@android:inputType
,看看它能为你做些什么。
http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType