2016-08-28 6 views
0

EditText 문자열이 변경 될 때마다 onTextChanged이 호출됩니다.editText의 setText TextWatcher.onTextChanged가 호출되지 않음

이제 새 Activity을 시작하고 Bundle을 통해 데이터를 보내면 onTextChanged이 호출되지 않습니다.

if(getIntent().getExtras() != null) { 
    Bundle b = getIntent().getExtras(); 
    int value = -1; 

    if(b != null) 
     value = b.getInt("key"); 
    edit1.setText("Mywords:"); 
} 

어떻게 호출 할 수 있습니까?

답변

1

코드 수정 버전입니다. 아이디어는 TextWatcher을 추가 한 후 EditText에 텍스트를 설정하는 것입니다.

if(getIntent().getExtras() != null) { 
    Bundle b = getIntent().getExtras(); 
    int value = -1; 

    if(b != null) 
     value = b.getInt("key"); 

    // Add the TextWatcher here 
    edit1.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      // Toast.makeText(MainActivity.this, "before text changed", Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // Toast.makeText(MainActivity.this, "on text changed", Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // Toast.makeText(MainActivity.this, "after text changed", Toast.LENGTH_LONG).show(); 
     } 
    }); 

    // Now the set the value in your EditText 
    edit1.setText("Mywords:"); 
} 
+0

감사합니다. – phpdroid

0

는 다음과 같은 시도 :

edit1.addTextChangedListener(new TextWatcher() { 

     public void afterTextChanged(Editable s) {} 

     public void beforeTextChanged(CharSequence s, int start, 
             int count, int after) { 
     } 

     public void onTextChanged(CharSequence s, int start, 
            int before, int count) { 
     } 
    }); 

참조 : android on Text Change Listener

+0

저는 이미 같은 방식으로 사용했는데, setText를 사용하여 텍스트를 변경할 때마다 매번 내부 클래스를 만들어야합니다. – phpdroid

+0

아니요, 매번 내부 클래스를 만들 필요는 없습니다. 코드를 제공해주세요. –

2

당신이 전화 setText 전에 TextWatcher에 가입되어 있는지 확인하십시오.

+0

TextWatcher 클래스 구현을 의미합니까? – phpdroid

+1

'edit1.addTextChangedListener'에 대한 호출은'edit1.setText' 이전이어야합니다. – j2ko