【问题标题】:Dynamically update autocomplete box in Android?在Android中动态更新自动完成框?
【发布时间】:2011-04-02 07:35:25
【问题描述】:

我想知道我们是否可以连续调用一些服务来获取结果并显示在自动完成列表中。

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

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

这可行吗?

【问题讨论】:

标签: android autocomplete dynamic


【解决方案1】:

写一个自定义SimpleCursorAdapter。现在将此适配器关联到您的 EditText。下面是构造 Cursor 对象并返回它的代码:

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 的示例。您可能需要对其进行自定义以满足您的要求。

【讨论】:

  • 这会动态工作。我的意思是请求不会在第一次发送,而是会在编辑文本中输入的每个字符上发送。这可行吗?
  • 是的!为每个按下的字符调用方法runQueryOnBackgroundThread
猜你喜欢
  • 2012-10-18
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多