2017-03-01 106 views
0

我想以格式XXXXXX/XX/XI格式化我輸入的數字,但它的漂亮廢話,而是我使用索引在位置6和9插入/,問題出現在上刪除,如果無法儘快到達任何斜線的刪除,下面是我的代碼:使用TextWatcher Android格式化文本

@Override 
     public void afterTextChanged(Editable s) { 

      edt.removeTextChangedListener(this); 


      if(TextUtils.isEmpty(s)) 
       return; 

      String string = s.toString().replace(" ", ""); 

      if(string.length() > 10) 
       string = string.substring(0, 11); 

      StringBuilder sb = new StringBuilder(string); 



      if(sb.length() >= 6) 
       sb.replace(6, 7, ""); 

      if(sb.length() >= 6) 
       sb.insert(6, "/"); 


      if(sb.length() >= 9) 
       sb.replace(9, 10, ""); 

      if(sb.length() >= 9) 
       sb.insert(9, "/"); 


      edt.setText(sb.toString()); 
      edt.setSelection(sb.length()); 
      edt.addTextChangedListener(this); 

     } 

任何人有一個更好的解決方案?

回答