2016-06-21 3 views

答えて

1

あなたは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 
    } 
} 
+0

私はそれを取得しますが、この方法では、空でない文字が入力されるたびにこのメソッドが実行されますが、これは必須ではありません。 – thetanuj

+0

参照する方法は?あなたは 'if'条件について話していますか?それはあなたのアプリのパフォーマンスに影響しません。 – Kunu

+0

これをあなたの 'onTextChanged'の中に加えてください。 – Kunu

2

EDITTEXTためaddTextChangedListenerを使用して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) { 
      } 
     }); 
+0

これは動作しません。 **最初の**空でない文字が入力されている場合のみ。 – thetanuj

+0

2文字あり、1文字削除されても失敗しませんか? – thetanuj

+0

@thetanuj no、trim()メソッドは空白文字を削除し、長さが1の空でない最初の文字を検出できます。 –

1

はい、これはTextWatcherを使用して行うことができます。

ロジック:、のEditTextで最後の値を格納する変数を宣言するのは、一時

@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 
      } 
     } 

も一時変数に新しい値を保存しましょう。それが助けてくれることを願って。

関連する問題