gpt4 book ai didi

android - 如何在显示消息后取消 EditText 的文本更改?

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:18 25 4
gpt4 key购买 nike

我可以禁用 EditText,但用户将无法更改文本。我试图实现的行为是,如果用户尝试键入某些内容(或任何其他更改方法,例如粘贴),则显示一条消息,如“由于某些原因,您无法编辑此文本。”。

起初,我以为我可以使用 TextWatcher 显示消息,但似乎没有办法取消更改。我怎样才能实现我正在寻找的行为?我能想到的唯一方法是以下非常肮脏的方法。

Have a backup of the text of the EditText. When EditText is changed, if isReverting is false, show the message and set isReverting to true. If isReverting is true, just set it to false. Set the backup to the EditText.

最佳答案

TextWatcher 将满足您的需求。在 afterTextChange() 中进行验证。下面是一个例子。

et_Name.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
String input=s.toString();
if(s.length()>4){
Toast.makeText(MainActivity.this, "You can only input 4 letters",
Toast.LENGTH_SHORT).show();
String old=input.substring(0,4);
et_Name.setText(old);
et_Name.setSelection(old.length());
}
}
});

关于android - 如何在显示消息后取消 EditText 的文本更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50342721/

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