2015-10-16 38 views
0

我正在处理输入事件,如果用户在editext输入文本输入函数发送请求到服务器并使用删除的文本我想停止键功能做的工作,但它不工作。处理聊天输入或停止输入事件(Android)

如何检查用户是否已经输入文本

mEditText.addTextChangedListener(new TextWatcher() { 
      public void afterTextChanged(Editable s) { 
       new Thread(new Runnable() { 
        @Override 
        public void run() { 
         try { 
          session.typing(); 
         } catch (OmegleException e) { 
          e.printStackTrace(); 
         }catch(NullPointerException e){ 
          e.printStackTrace(); 
         } 
        } 
       }).start(); 
      } 
      public void beforeTextChanged(CharSequence s, int start, 
       int count, int after) { 
      } 
      public void onTextChanged(final CharSequence s, final int start, 
       int before, int count) { 
       new Thread(new Runnable() { 

        @Override 
        public void run() { 
         try { 
          if(start==-1){ 
           session.stopTyping(); 
          } 
         } catch (OmegleException e) { 
          e.printStackTrace(); 
         }catch(NullPointerException e){ 
          e.printStackTrace(); 
         } 
        } 
       }).start(); 
      } 
     }); 

回答

0
int lenghtAfterType; 
int lenghtBeforeType; 
public void beforeTextChanged(CharSequence s, int start, 
      int count, int after) { 
    lenghtBeforeType = yourEdittext.getText.toString.Lenght; 
    } 
public void afterTextChanged(Editable s) { 
    lenghtAfterType = yourEdittext.getText.toString.Lenght; 

    if((lenghtAfterType-lenghtBeforeType)<0){ 
     // user while deleted text 
    }else{ 
     // user while typing 
      } 
    } 
+0

你的方式是好的,但你正在做的是错的,但无论如何谢谢我张贴我的答案上面你可以看到我做了什么,使其工作 – Nirjara

1

后取出文本我改下:

mEditText.addTextChangedListener(new TextWatcher() { 
      public void afterTextChanged(Editable s) { 

      } 
      public void beforeTextChanged(CharSequence s, int start, 
       int count, int after) { 
       lengthBeforeType = mEditText.getText().toString().length(); 

      } 
      public void onTextChanged(final CharSequence s, final int start, 
       int before, final int count) { 
       lengthAfterType = mEditText.getText().toString().length(); 
       new Thread(new Runnable() { 
        @Override 
        public void run() { 

         try { 
          if((lengthAfterType-lengthBeforeType)<0){ 
           session.stopTyping(); 
          }else{ 
           session.typing(); 
          } 
         } catch (OmegleException e) { 
          e.printStackTrace(); 
         } 
        } 
       }).start();