2011-02-21 43 views
7

im hiện đang chuyển trình quản lý cơ sở dữ liệu sang android và do lý do hiệu suất tôi thích để chỉ cập nhật các thuộc tính đã được sửa đổi. Tôi đang cố gắng làm điều này với addTextChangedListener để thêm các mục nhập đã sửa đổi vào một Danh sách, nhưng Chương trình của tôi không bao giờ nhập bất kỳ phương thức nào của nó.Android EditText và addTextChangedListener

EditText Et = (EditText) Editors.get(Prop.Name); 
Et.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void afterTextChanged(Editable s) { 
     // 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 onTextChanged(CharSequence s, int start, int before, int count) { 
     // TODO Auto-generated method stub 
     if(Prop.GetType() == Property.PROPTYPE.num) { 
      float f = Float.parseFloat(s.toString()); 
      Prop.FromString(f); 
     } 
     else { 
      Prop.FromString(s.toString()); 
     } 
     propertiesToUpdate.add(Prop); 
}); 
Et.setText(Prop.ToString()); 
+1

Có thiếu} ở cuối onTextChanged không? – banzai86

+0

Mã không đầy đủ để hiểu vấn đề của bạn. Chỉnh sửa văn bản được đặt bên trong listvieW? – Shardul

+0

http://stackoverflow.com/questions/6270484/how-to-remove-all-listeners-added-with-addtextchangedlistener – max4ever

Trả lời

4

Tại sao nhận phiên bản EditText theo cách này. Đó là một phần của bố trí hoạt động của bạn vì vậy bạn nên làm cho nó một cái gì đó như thế này

EditText Et = (EditText) findViewById(R.id.your_id); 

Tôi nghĩ vấn đề là bạn đang nắm giữ một tham chiếu đến một EditText mà không thuộc về bố trí hoạt động của bạn, do đó bạn được gắn người nghe đến chế độ xem sai.

Các vấn đề liên quan