2010-08-22 43 views
6

我想知道我们是否可以不断调用某些服务来获取结果并显示在自动完成列表中。在Android中动态更新自动填充框?

我有一个文本框的屏幕,当用户开始输入该文本框时,自动完成应该填充数据。数据不会被硬编码,并会通过http连接获取。我想我需要在EditText的onTextChanged方法中调用http连接,但这是完美的解决方案。

此外,应该在移动应用程序中完成这种类型的实现。因为这个功能是基于网页的。这也可以在移动应用程序中完成吗?

这可行吗?

+0

Duplicate http://stackoverflow.com/questions/3405935/dynamic-data-for-adapter-attached-to-edittext – ankitjaininfo 2010-08-22 21:24:14

回答

2

写自定义SimpleCursorAdapter。现在将此适配器与您的EditText关联。这里是构造一个光标对象,并返回它的代码:

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; 
    } 
} 

这里为Customizing Cursor Adapter一个例子。您可能需要对其进行定制以符合您的要求。

+0

这将工作的动态。我的意思是这个请求不会首次发送,但会在edittext中输入的每个字符上发送。这是可行的吗? – sunil 2010-08-23 05:09:53

+0

是的!为每个按下的字符调用runQueryOnBackgroundThread方法。 – ankitjaininfo 2010-08-23 05:47:56