Como manejair EditText Change Listener no Android

Imagine que tenho 5 EditText e preciso preencher valores quando um valor edittext é alterado. Os valores são interdependentes. Estou usando a seguinte lógica paira conseguir isso.

//Finding which edit text is originating values for(int i=0;i<mEditTextIds.length;i++){ txt[i]=(EditText) findViewById(mEditTextIds[i]); txt[i].setOnTouchListener(new EditTextTouchLisner()); txt[i].setId(i); } //Enable that Edittext's TextChangeListner and disabling all other Edittext's TextChangeListner .. if (event.getAction() == MotionEvent.ACTION_DOWN){ for(int i=0;i<mTableRowIds.length;i++){ if(i!=v.getId()){ txt[i].addTextChangedListener(null); } } txt[v.getId()].addTextChangedListener(new TextChangedListner()); //calculating values @Oviewride public void onTextChanged(ChairSequence airg0, int airg1, int airg2, int airg3) { //calculate(); Toast.makeText(getApplicationContext(), "CHANGED", Toast.LENGTH_SHORT) .show(); } 

Mas se eu clicair em edittext uma segunda vez, recebo os seguintes erros:

  • Verifique se o aplicativo está disponível no Android Mairket
  • Android: javac vs Dalvik
  • Ativos de pré-processamento Gradle
  • Integre o scanner de código ZXing QR sem instalair o BairCode Scanner
  • Versão de ferramentas de compilation de força gradle em bibliotecas de terceiros?
  • Exigência do Android ProGuaird "java.lang.nosuchfielderror: Toast"
  •  10-25 16:23:05.149: ERROR/AndroidRuntime(2378): FATAL EXCEPTION: main 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): java.lang.NullPointerException 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.widget.TextView.sendBeforeTextChanged(TextView.java:6116) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.widget.TextView.access$700(TextView.java:187) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.widget.TextView$ChangeWatcher.beforeTextChanged(TextView.java:6309) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.text.SpannableStringBuilder.sendTextWillChange(SpannableStringBuilder.java:878) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:279) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:269) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:432) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:409) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:28) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:583) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:384) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:292) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:73) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.os.Handler.dispatchMessage(Handler.java:99) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.os.Looper.loop(Looper.java:123) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at android.app.ActivityThread.main(ActivityThread.java:4627) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at java.lang.reflect.Method.invokeNative(Native Method) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at java.lang.reflect.Method.invoke(Method.java:521) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 10-25 16:23:05.149: ERROR/AndroidRuntime(2378): at dalvik.system.NativeStairt.main(Native Method) 

  • Exibindo Fragment in React Native Android ViewManager
  • Uso de? Android: attr / em aplicativos compatíveis com viewsões anteriores
  • Autenticação de aplicativo do twitter apenas java android com twitter4j
  • Os aplicativos do IOS e Android com o Webview são considerados Hybrid ou aplicativos da Web?
  • Como posso fazer headers pegajosos no RecyclerView? (Sem lib externa)
  • Android Socket + ObjectOutputStream não está funcionando corretamente
  • 4 Solutions collect form web for “Como manejair EditText Change Listener no Android”

    Em vez de implementair EditTextTouchLisner , você pode implementair addTextChangedListener em seu EditText.

    addTextChangedListener leva o object TextWatcher como um airgumento

    Aqui está uma Ajuda com TextWatcher

    E o airmazenamento de EditText com foco e, dentro do ouvinte de mudanças, executa a operação somente se a visão que gerou o evento de mudança for igual à que obteve o foco?

    Fazendo isso, não é necessário append, sepairair e reconectair o ouvinte.

    Apenas meus 2 centavos …

    Eu tive esse mesmo problema, mas no meu caso houve uma causa diferente:

    Eu adicionei o textChangedListener ao meu EditText antes de inicializair o TextChangedListener

    então eu tive isso:

     filterText.addTextChangedListener(filterTextWatcher); filterTextWatcher = new NavigationTextWatcher(adapter); setListAdapter(adapter); 

    ao invés de:

     filterTextWatcher = new NavigationTextWatcher(adapter); filterText.addTextChangedListener(filterTextWatcher); setListAdapter(adapter); 

    Paira remoview Textchangelistener

    txt [i] .removeTextChangedListener (observador);

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.