gpt4 book ai didi

android - 当两个EditText字段均输入至少一个字符时,启用按钮(Android)

转载 作者:行者123 更新时间:2023-12-02 13:23:16 33 4
gpt4 key购买 nike

我创建的类使按钮可以在任何一个字段中输入。我如何修改它,以便仅当用户在两个EditText字段中都输入内容时才启用按钮。

    class BtnEnabler(){
constructor(type:EditText, btn:Button):this(){
btn.isEnabled = false
type.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(p0: Editable?) {
}
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
})
fun EditText.afterTextChanged(afterTextChanged: (String) -> Unit) {
this.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun afterTextChanged(editable: Editable?) {
afterTextChanged.invoke(editable.toString())
}
})
}
type.afterTextChanged {btn.isEnabled = true}
}
}
BtnEnabler(byear, sub_btn)
BtnEnabler(bday, sub_btn)

此外,当用户删除所有输入文本时,是否可以再次禁用按钮?

最佳答案

 EditText editText1;
EditText editText2;
Button button;

private void init() {
// TODO: 5/18/2018 consider findViewById first
editText1.addTextChangedListener(textWatcher);
editText2.addTextChangedListener(textWatcher);
}

private String getText(TextView textView) {
return textView.getText().toString().trim();
}

TextWatcher textWatcher = 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) {
button.setEnabled(getText(editText1).length() > 0 && getText(editText2).length() > 0);
}
};

希望您可以将其转换为Kotlin。

关于android - 当两个EditText字段均输入至少一个字符时,启用按钮(Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50416979/

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