gpt4 book ai didi

java - 如何阻止用户在 EditText 上输入特定字符

转载 作者:行者123 更新时间:2023-12-01 09:04:32 26 4
gpt4 key购买 nike

我需要阻止用户在数字 EditText 上从键盘输入 .(句点)字符,但我需要能够在通过 setText 方法相同的 EditText

我尝试使用InputFilter,但是当我调用setText时,.字符不显示。我还尝试在 xml 中设置 digits 参数,但 setText 也不起作用。

有办法做到这一点吗?

这是我的输入过滤器代码:

public static InputFilter blockPeriod(){

return new InputFilter() {
@Override
public CharSequence filter(CharSequence charSequence, int i, int i1, Spanned spanned, int i2, int i3) {

for (int j = i; j <i1 ; j++) {

char c = charSequence.charAt(j);
if (!allowed(c)){

return "";

}

}

return null;
}

private boolean allowed(char c){

return c != '.';

}

};

}

最佳答案

您可以使用 InputFilter 来完成此操作,但在调用 setText() 方法时需要允许它一段时间。

private static class AllowableInputFilter implements InputFilter {
private boolean mAllowDot;

public void setAllowDot(boolean toAllow) {
mAllowDot = toAllow;
}

....


private boolean allowed(char c){
return mAllowDot || c != '.';
}
}

public void forceText(String text) {
mInputFilter.setAllowDot(true);
mEditText.setText(text);
mInputFilter.setAllowDot(false);
}

mInputFilter = new AllowableInputFilter();
mInputFilter.setAllowDot(false);

mEditText.setFilters(new InputFilter[] {mInputFilter});

forceText("Okaaayy....");

关于java - 如何阻止用户在 EditText 上输入特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41397142/

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