2010-08-22 54 views
6

Tôi muốn biết liệu chúng tôi có thể liên tục gọi một số dịch vụ để tìm nạp kết quả và hiển thị trong danh sách Tự động điền hay không.Tự động cập nhật hộp tự động điền trong Android?

Tôi có một màn hình với hộp văn bản và khi người dùng bắt đầu nhập vào hộp văn bản đó, tính năng tự động hoàn tất sẽ được điền dữ liệu. Dữ liệu sẽ không được mã hóa cứng và sẽ được tìm nạp thông qua kết nối http. Tôi nghĩ rằng tôi cần phải gọi kết nối http trong onTextChanged phương pháp của Edittext nhưng là giải pháp hoàn hảo.

Hơn nữa, loại triển khai này nên được thực hiện trong ứng dụng dành cho thiết bị di động. Vì tính năng này dựa trên web. Điều này có thể được thực hiện trong ứng dụng di động không?

Điều này có khả thi không?

+0

Duplicate http://stackoverflow.com/questions/3405935/dynamic-data-for-adapter-attached-to-edittext – ankitjaininfo

Trả lời

2

Viết tùy chỉnh SimpleCursorAdapter. Bây giờ liên kết bộ điều hợp này với EditText của bạn. Đây là đoạn mã để xây dựng một đối tượng Cursor và gửi lại:

public class ValueCursorAdapter extends SimpleCursorAdapter implements Filterable 
{ 

    ... 
// overrise the newView() to associate mCursor[1] and mCursor[2] to relevant views within 
    ... 

    @Override 
    public Cursor runQueryOnBackgroundThread(CharSequence constraint) 
    { 
     MatrixCursor mCursor = new MatrixCursor(new String[] { "_id", "uri", "label" }); 
     .. // result = ?? 
      while (result.hasNext()) 
      { 
       mCursor.addRow(new Object[] { count, "uri", "title"}); 
       count++; 
      } 
     return mCursor; 
    } 
} 

Dưới đây là một ví dụ cho Customizing Cursor Adapter. Bạn có thể cần phải tùy chỉnh nó để phù hợp với yêu cầu của bạn.

+0

điều này có hoạt động không. Những gì tôi có nghĩa là yêu cầu sẽ không được gửi chỉ một lần đầu tiên nhưng nó sẽ được gửi trên mỗi ký tự được nhập trong văn bản. Điều đó có khả thi không? – sunil

+0

Có! Phương thức 'runQueryOnBackgroundThread' được gọi cho mỗi ký tự được nhấn. – ankitjaininfo

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