title: afterTextChanged append not working
body: <pre><code>text.addOnTextChanged(new TextWatcher() {
  
    @Override
    public void afterTextChanged(Editable s) {
        if (s.length() == 4 || s.length() == 9 || s.length() == 14) {
            text.append("-");
        }
    }
  
  }
  </code></pre>
  
  <p>For some reason, that code doesn't work. I simplified it to the core of what it should be. Ideally, you'd see "1234-5678-1234-5678" as an output, because I take 16 digits max. I got it to work with <code>text.setText(s.toString() + "-")</code> and then in a post runnable, set the selection to <code>s.length() + 1</code>, but append takes care of that for you. Further, for a few milliseconds you can tell that the cursor goes back to the beginning due to <code>setText</code> before <code>setSelection</code> goes into effect.</p>
  
  <p>Why doesn't it work?</p>