2017-02-01 12 views
0

AutocompleteTextViewのいずれかが有効になっていて、2番目のものが何であっても奇妙な状況があります。編集テキストetSerialとそれにいくつかの値がある場合、テキスト編集(etDesign)とautocomplete textview atShadeが無効になるはずですが、etSerialのテキストをクリアすると、etDesignとatShadeが有効になります。AutocompleteTextViewが有効になっていません

atShadeとetDesignは無効になっていますが、etSerialからテキストが消去されると、etDesignだけが有効になります。何も(etSerialに値を入力する前に、それが適切な値を示した)etSerialをクリアした後atShadeのクリックに起こりません

私もそれが有効か無効かどうかを確認するために乾杯を追加、TextViewには、それが有効になっていることを示しているが、私atShade

私のコードをクリック上のカーソルを取得していない午前は次のとおりです。

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

をあなたはautocompleteTextViewのために** ** setFocusable(真)**と** setFocusable(false)を試したことがありますか? –

答えて

1

問題がafterTextChanged()メソッド内のあなたの場合はブロックの範囲です。 は、次のコードを試してみてください。

@Override 
    public void afterTextChanged(Editable arg0) { 

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

何を変更しましたか?それは私のコード@nnnとまったく同じです –

+0

内部ifループのスコープをチェックしてください。あなたのコードに中括弧がありません。 – nnn

+0

オハイオ州の男thats愚かな間違いは非常に@nnnありがとう –

関連する問題