我将EditText限制为数字字符,当用户输入数字并且用户按下“。”时,我需要执行特殊操作。虚拟键盘上的字符。
numberEditText = new EditText(this);
numberEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
我知道存在这个听众:
numberEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
return false;
}
});
但我不知道如何使用它来满足我的需求。
任何帮助都将被授予。
由于
答案 0 :(得分:1)
编辑:显然它不适用于OP。
if(event.getKeyCode() == KEYCODE_NUMPAD_DOT) { ... }
可行。也许你必须在" KEYCODE_NUMPAD_DOT"
前面添加一些东西。此处提供所有密钥代码:http://developer.android.com/reference/android/view/KeyEvent.html
答案 1 :(得分:1)
添加文本更改的侦听器。
editText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
//Do your stuff here
}
});
答案 2 :(得分:1)
这就是 -
editText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(s.equals("."))
editText.setText("");
}
});
答案 3 :(得分:1)
您可以将文字观察器与您的编辑文字一起使用,例如
Import-Module BitsTransfer; Start-BitsTransfer '%URL%' '%downloadPath%'
答案 4 :(得分:0)
您可以使用上述代码块获取最后一个inout字符。
getSelectionStart()获取光标位置。输入字符后,光标将移到该字符的右侧。这样就可以通过(光标位置-1)获取最后输入的字符
edt.addTextChangedListener(new TextWatcher(){ @Override public void beforeTextChanged(CharSequence charSequence,int i,int i1,int i2){
[1,1,1,1,1,1,"hello",1,1,1,1,3,4,6,1,"world",1,1,1,1,3,4,3,"1",1,1,1,1,1,1,1,"welcome",3,4]