2015-11-04 62 views
0

在我的應用程序中,我必須禁用EditText並以編程方式更改EditText中的文本,問題是我想要EditText來監聽我在EditText上添加的TextWatcher。禁用EditText時啓用TextWatcher

EditText是不聽守望者。

所以任何人都可以請幫助啓用EditTextTextWatcher而它被禁用和文本填充到EditText編程方式不通過KeyBoard

我嘗試下面的代碼

txtShift.addTextChangedListener(new TextWatcher() { 

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


     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
      if (s.length()>0) { 
       keyPadOnOff(false); 
      }else { 
       keyPadOnOff(true); 

      }  
     } 
    }); 

感謝

+3

如果文本被填充到編程的EditText那麼爲什麼你需要TextWatcher:

txtShift.removeTextChangedListener(textWatcher); 

你可以開始?在將文本設置爲EditText時,您不能觸發事件嗎? –

+0

你試過的是什麼? – Amy

+0

@DhavalPatel,是的,我只有這個選項來觸發動作,而填充的文本,如果它是不可能通過觀察者 –

回答

0

檢查下列項目

  1. 您導入此行 - 進口android.text.TextWatcher?;
  2. 你初始化的EditText正常嗎?
  3. 上設置方法的Log.v - afterTextChanged(可編輯或多個)和第一檢查。

    公共無效afterTextChanged(編輯S){

    Log.v(TAG, 「AfterTextChanged工作」);

    }

  4. 如果第三個點得到正確的對數值。 該錯誤是在該方法中keyPadOnOff(布爾值)

5.檢查方法keyPadOnOff(布爾值)。

0

後,在谷歌這麼多挖我發現我們都無法使EditText監聽守望者,如果它做出

et.setFocusable(false); 
et.setClickable(false); 

所以我做什麼,我觸發事件時,我在EditText從我的代碼填入的文字。

0

你可以用這條線使TextWatcher:

txtShift.addTextChangedListener(textWatcher); 

TextWatcher textWatcher = new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 

      if (s.length()>0) { 
       keyPadOnOff(false); 
      }else { 
       keyPadOnOff(true); 
      } 

     } 
    };