2017-02-01 5 views
0

Ich habe eine seltsame Situation, wo eine der AutocompleteTextView aktiviert wird und zweitens nicht egal was ist. Ich bearbeite Text etSerial und wenn das einen gewissen Wert hat, dann bearbeite Text (etDesign) und AutoComplete TextView atShade sollte deaktiviert werden, aber wenn ich Text von etSerial lösche, sollten Bothe etDesign und atShade aktiviert werden.AutocompleteTextView wird nicht aktiviert

atShade und etDesign werden deaktiviert, aber wenn Text aus etSerial gelöscht wird, wird nur etDesign aktiviert.

nichts passiert auf atShade Klick nach etSerial Clearing (Vor Wert in etSerial Eingabe wurde Wert richtig angezeigt)

i auch Toast hinzugefügt, um zu sehen, ob es aktiviert ist oder nicht, Textview zeigt, dass es aktiviert ist, aber ich atShade auf klicken

meinen Code bin nicht Cursor immer ist:

private void initAutoText(final TextView tv) { 
tv.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

      if(tv == etSerial){ 
       if(etSerial.getText().toString().isEmpty()) { 
        atShade.setEnabled(true); 
        etDesign.setEnabled(true); 
Toast.makeText(OrderBookingActivity.this,String.valueOf(atShade.isEnabled()),Toast.LENGTH_SHORT).show(); 
       } 
      } 
     } 

     @Override 
     public void afterTextChanged(Editable arg0) { 

      if(tv == etSerial){ 
       if(!etSerial.getText().toString().isEmpty()) 
       etDesign.setEnabled(false); 
       atShade.setEnabled(false); 

      } 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     } 
    }); 
} 
+0

Haben Sie versucht ** setFocusable (true) ** und ** setFocusable (false) ** für autocompleteTextView? –

Antwort

1

Das Problem mit dem Umfang Ihres wenn Block innerhalb afterTextChanged() -Methode ist. Versuchen Sie folgenden Code:

@Override 
    public void afterTextChanged(Editable arg0) { 

     if(tv == etSerial){ 
      if(!etSerial.getText().toString().isEmpty()){ 
       etDesign.setEnabled(false); 
       atShade.setEnabled(false); 
      } 
     } 
    } 
+0

Was hast du geändert? es ist genau das gleiche wie mein Code @nnn –

+0

Überprüfen Sie den Umfang der inneren if-Schleife. Klammern fehlen in Ihrem Code. – nnn

+0

oh man das ist ein dummer Fehler Vielen Dank @nnn –

Verwandte Themen