2012-05-22 40 views
6


Tôi có một hộp EditText nơi người dùng có thể nhập đầu vào. Tôi cần hiển thị văn bản đầu vào trong một TextView (được đặt bên dưới Edittext) trong khi người dùng nhập văn bản.
Ví dụ: Nếu người dùng nhập bất kỳ ký tự nào trong hộp Edittext, tôi cần hiển thị các ký tự giống nhau trong TextView. Trong cùng một cách, nếu người dùng xóa bất kỳ ký tự nào từ editetext, tôi cần phải loại bỏ cùng một ký tự từ TextView. (Tối đa, tôi muốn thay đổi văn bản của textview về thay đổi văn bản của editext). Tôi hy vọng yêu cầu của tôi là rõ ràng ngay bây giờ. Làm thế nào tôi có thể đạt được điều này ? Vui lòng hướng dẫn tôiLàm thế nào để thay đổi văn bản của TextView khi thay đổi văn bản của EditText?

+0

Hãy xem này: http://www.andreabaccega.com/blog/2010/10/09/onchange- event-on-edittext-in-android / – Urho

Trả lời

21

Thêm TextWatcher vào Edittext của bạn. trong afterTextChanged() hoạt động của bạn. http://developer.android.com/reference/android/text/TextWatcher.html

TextWatcher inputTextWatcher = new TextWatcher() { 
    public void afterTextChanged(Editable s) { 
       textview.setText(s.toString()); 
    } 
    public void beforeTextChanged(CharSequence s, int start, int count, int after){ 
    } 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
    } 
}; 

editText.addTextChangedListener(inputTextWatcher); 
4

Bạn nên ghi đè phương pháp này:

editText.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) { 

    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     if(editText.getText().length() >= 0) { 
      textView.setText(editText.getText().toString()) 
     } 
    } 
}); 
5
edtText.addTextChangedListener(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) { 
       // TODO Auto-generated method stub 
       if (!edtText.getText().toString().equalsIgnoreCase("")){ 

        // here textview.setText(edtText.getText()); 

       } 
      } 
     }); 
    } 
Các vấn đề liên quan