gpt4 book ai didi

android - 在 Android EditText 中截取数字 0 到 9

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:15:56 25 4
gpt4 key购买 nike

我想在android中拦截来自软键盘的0到9个按键事件。我尝试了很多方法但没有成功。任何一点帮助都会对我有很大帮助。

我正在做的是,

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {


if (keyCode==KeyEvent.KEYCODE_12)
{
Toast.makeText(context, "Pressed", Toast.LENGTH_LONG).show();

return true;
}

return super.onKeyDown(keyCode, event);
}

在我的自定义 EditText 类中,但它不起作用我错过了什么?我已经尝试了很多关键代码,但手头没有结果。

最佳答案

使用文本观察器,它更简单:

在类级别:

EditText editText; 

在onCreate中:

editText = (EditText)findViewById(R.id.yourEdittext)

editText.addTextChangedListener(mTextEditorWatcher);

在 onCreate 之外(类级别):

final TextWatcher mTextEditorWatcher = new TextWatcher(){

public void beforeTextChanged(CharSequence s, int start, int count, int after) {


}

public void onTextChanged(CharSequence s, int start, int before, int count) {
System.out.println("Entered text: "+editText.getText());
// USe edit_text.getText(); here
}

public void afterTextChanged(Editable s) {

}
};

如果您想将编辑文本上的条目限制为仅字母表,请将其添加到编辑文本控件的 XML 中:

 android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

如果您不喜欢上面的内容并想通过代码实现,请使用以下内容:

editText.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence chr, int start,
int end, Spanned dst, int dstart, int dend) {
if(chr.equals("")){
return chr;
}
if(chr.toString().matches("[a-zA-Z ]+")){
return chr;
}
return "";
}
}
});

关于android - 在 Android EditText 中截取数字 0 到 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27819406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com