gpt4 book ai didi

Android:EditText 中的字符数有限

转载 作者:行者123 更新时间:2023-11-29 01:40:48 26 4
gpt4 key购买 nike

我想允许用户在 EditText 中只输入 10 个字符。我尝试了两种方法。

方法一:

android:maxLength="10"

方法 2:

我使用了 InputFilter 类。

editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)});

当我使用这些方法时,光标停在 10 处,不再显示任何字符。但是,它仍然采用我在这 10 个字符之后键入的字符。我可以在键盘上方的建议区域看到它们。为了清楚说明,让我举个例子。

假设我输入“abcdefghij”,它工作正常。现在,假设我输入了“abcdefghijklm”,我只能看到 EditText 中的前 10 个字符,但是当按退格键时,它会删除最后一个字符“m”,而不是删除 EditText 中最后一个可见的字符“j”。

我该如何解决这个问题?我也不想将多余的字符保留在缓冲区中。这样当用户按下退格键时,它应该删除第 10 个字符。

最佳答案

您可以使用edittext.addTextChangedListener

editTextLimited.addTextChangedListener(new TextWatcher() {
/** flag to prevent loop call of onTextChanged() */
private boolean setTextFlag = true;

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// add your code here something like this
if(count > 10){
Toast.makeText(context,"10 chars allowed",Toast.LENGTH_LONG).show();

// set the text to a string max length 10:
if (setTextFlag) {
setTextFlag = false;
editTextLimited.setText(s.subSequence(0, 10));
} else {
setTextFlag = true;
}
}
}

});

关于Android:EditText 中的字符数有限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24822059/

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