我重写了视图的onKeyDown方法(openGL表面视图)以捕获所有按键.问题是在几个设备上没有捕获KEYCODE_DEL.我已经尝试将onKeyListener添加到视图中,并捕获除了退格键之外的所有内容.
必须有一种方式来听这个关键的新闻事件,但是怎么样?
在我的Android应用程序中,我只需要禁用空格键.但我没有找到解决这个问题的方法.我需要禁用空格键,当用户输入空格不起作用时,特殊字符,字母,数字和所有其他应该工作.我试过的是,
etPass.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
String str = s.toString();
if(str.length() > 0 && str.contains(" "))
{
etPass.setError("Space is not allowed");
etPass.setText("");
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
Run Code Online (Sandbox Code Playgroud)
但这里的问题是一旦空格全文删除.我删除了
etPass.setText("");
Run Code Online (Sandbox Code Playgroud)
这一行,所以当时显示错误信息,但那时用户仍然可以输入空格.但我需要的是用户不应该键入空格.
在我的Android项目中,我限制Edittext只允许使用Alphanumeric字符.我使用下面的代码片段来实现这一点
<EditText
android:id="@+id/edt_text"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
android:ems="10"
android:imeOptions="actionNext"
android:maxLength="8"
android:padding="5dp"
android:singleLine="true" />
Run Code Online (Sandbox Code Playgroud)
但是当我使用这个代码时,如果我选中它中的Space Bar显示soft keypad是作为一个BackSpace按钮并删除中的字符EditText.有人请帮我解决这个问题.
android android-widget android-softkeyboard android-edittext