title: TextInputEditText addTextChangedListener Not Called When Typing
body: <p>I have a simple form with one <code>TextInputEditText</code> (Material Design component) and am unable to listen for text changes. Adding a <code>TextWatcher</code> with <code>addTextChangedListener</code> seems to have zero effect. When I run my app and type into the input with the virtual keyboard, none of the callbacks are called (debug breakpoints are not hit), and my <code>TextView</code> is not updated:</p>
  
  <p>Activity:</p>
  
  <pre><code>class MainActivity : AppCompatActivity() {
  
  
      private lateinit var webBankingIdLayout: TextInputLayout
      private lateinit var webBankingIdInput: TextInputEditText
      private lateinit var textView: TextView
  
      override fun onCreate(savedInstanceState: Bundle?) {
          super.onCreate(savedInstanceState)
          setContentView(R.layout.activity_main)
          webBankingIdLayout = findViewById&lt;TextInputLayout&gt;(R.id.web_banking_id_input_layout)
          webBankingIdInput = TextInputEditText(webBankingIdLayout.context)
          textView = findViewById&lt;TextView&gt;(R.id.temp_text)
  
          webBankingIdInput.addTextChangedListener(object: TextWatcher {
              override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
                  s!!
              }
              override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
                  s!!
                  textView.text = s!!
              }
              override fun afterTextChanged(s: Editable?) {
                  s!!
              }
          })
      }
  }
  </code></pre>
  
  <p>Activity Layout:</p>
  
  <p>
  </p>
  
  <pre><code>&lt;com.google.android.material.textfield.TextInputLayout
      android:id="@+id/web_banking_id_input_layout"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical"
      style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"&gt;
  
      &lt;com.google.android.material.textfield.TextInputEditText
          android:id="@+id/web_banking_id_text_input"
          android:maxLines="1"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:baselineAligned="false"
          android:inputType="text"
          android:hint="@string/web_banking_id_hint" /&gt;
  
  &lt;/com.google.android.material.textfield.TextInputLayout&gt;
  
  &lt;TextView
      android:id="@+id/temp_text"
      android:layout_width="250dp"
      android:layout_height="113dp"
      android:layout_marginStart="8dp"
      android:layout_marginEnd="8dp"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toBottomOf="@id/password_input_layout" /&gt;
  </code></pre>
  
  <p></p>
  
  <p>If, however, I programatically set the text of the input field, then the callbacks are called and the <code>TextView</code> is updated.</p>
  
  <pre><code>webBankingIdInput.text = "Yippee!"
  </code></pre>
  
  <p><strong>Why doesn't my code work, and how can I listen to character entry into the text input?</strong></p>
  
  <p>My goal is to keep a button hidden until the minimum number of characters are entered into the field.</p>