[英]Android Edittext - detect when first non-empty character entered (and last deleted)
我只想在Edittext
輸入第一個非空字符或刪除最后一個非空字符時執行一種方法。 我想我必須使用TextWatcher
但不確定邏輯。
將addTextChangedListener
用於Edittext並檢測使用charSequence.length() > 0
條件插入的第一個字符!
<YOUR_EDITTEXT>.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
int length = charSequence.toString().trim().length();
if ((length == 1 && (i == 0 && i1 < i2)) || (length == 0 && (i == 0 && i2 < i1))) {
//Call your method....
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
我認為您想修剪EditText字符串。 修剪功能刪除開頭和結尾的所有空白。
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2){
int length = charSequence.toString().trim().length();
if(length > 0){
// call your method
}
}
是的,您是對的,您可以使用TextWatcher做到這一點。
邏輯:聲明一個變量以將最后一個值存儲在edittext中,比如說temp
@Override
public void onTextChanged(CharSequence s, int i, int i1, int i2) {
// when first non-empty character is entered
if(s.length()>temp.length() && s != ' ' && temp.length()==0) {
//Call your method
}
// when last non-empty character is deleted
if(s.length()<temp.length() && s!=' ' && temp.length()==1){
//Call your method
}
}
也將新值保存在temp變量中。 希望它會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.