Android - Checking if editText is gt;3 before and after user input(Android - 在用户输入之前和之后检查editText是否 3)
问题描述
我有一些代码,如果 editText 字段中的字符少于 3 个,我需要禁用创建帐户"按钮.如果用户输入 3 个字符,则该按钮应启用自身以便可以使用.
I have some code where I need a "Create Account" button to be disabled if an editText field has less than 3 char in it. If the User enters 3 chars, then the button should enable itself so that it can be used.
我已经构建了 if else 语句,如果 editText 字段中的字符少于 3 个,则禁用按钮,但是在输入时,当用户插入 3 个字符时,它不会重新评估该语句是否为真所以按钮当然会保持禁用状态.
I have constructed the if else statement that disables the button if there are less than 3 char in the editText field, BUT on input, when the user inserts 3 char, it does not re-evaluate to see if the statement is true so the button of course stays disabled.
一旦用户在编辑文本字段中输入 3 个字符,按钮应该会自行启用.
Once the user enters 3 char into the edit text field, the button should enable itself.
Button buttonGenerate = (Button) findViewById(R.id.btnOpenAccountCreate);
userInitials = (EditText) findViewById(R.id.etUserChar);
if (userInitials.getText().toString().length() > 3) {
// Account Generator Button
buttonGenerate.setEnabled(true); // enable button;
buttonGenerate.setOnClickListener(new OnClickListener() {
//Do cool stuff here
@Override
public void onClick(View v) {
}
});// END BUTTON
} else {
// If UserInitials is empty, disable button
Toast.makeText(this, "Please enter three(3) characters in the Initials Field ", Toast.LENGTH_LONG)
.show();
buttonGenerate.setEnabled(false); // disable button;
}// END IF ELSE
推荐答案
你想使用一个 TextWatcher
每当您的 EditText
中具有此 listener
的文本发生更改时,都会触发此事件.您只需像其他任何 listener
一样将 listener
附加到您的 EditText
然后覆盖其方法,并从下面的链接示例中检查长度
This will be triggered each time the text in your EditText
which has this listener
on it has changed. You just attach the listener
to your EditText
like you would any other listener
then override its methods and , from the linked example below, check the length
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
if (s.length() > 2)
{
buttonGenerate.setEnabled(true);
}
else
{
buttonGenerate.setEnabled(true);
}
}
您不需要签入您的 onClick()
然后,只需默认禁用 Button
并在您的 onTextChanged()
如果满足条件.
You don't need to check in your onClick()
then, just disable the Button
by default and enable in your onTextChanged()
if the condition is met.
重写
上面可以清理为
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
buttonGenerate.setEnabled((s.length() > 2));
}
我也改成了>2
因为我认为这实际上是你想要的,但你拥有它的方式有点令人困惑.您说输入三(3)",这听起来正好是 3,但您的代码看起来不同.无论如何,这对你来说很容易改变.
I also have changed it to > 2
because I think that's actually what you want but the way you have it is a little confusing. You say "enter three(3)" which sounds like exactly 3 but your code looks different. Anyway, that's easy enough for you to change.
查看这个答案的例子
这篇关于Android - 在用户输入之前和之后检查editText是否> 3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Android - 在用户输入之前和之后检查editText是否> 3


基础教程推荐
- 如何对 Java Hashmap 中的值求和 2022-01-01
- 存储 20 位数字的数据类型 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- Struts2 URL 无法访问 2022-01-01