8

我正在开发一个有搜索选项的应用程序。在那个搜索框中,如果我输入“a”,我想要所有以 a 开头的朋友的名字,我将从网络服务器获取。但为此,我必须在输入每个字母的同时提出请求。但是当我用谷歌搜索时,我得到了不同的反应。有人说 Ajax 调用在 Android 中是不可能的。基本上Android是基于java的。那为什么不能执行 AJAX 调用。如果可能的话,任何人都可以指导我找到与 Android 中的 AJAX 调用相关的良好链接吗?

4

4 回答 4

4

您可以使用droidQuery,它是jQuery 的 Android 端口,包含 jQuery大部分功能和语法,包括Ajax。例如:

$.ajax(new AjaxOptions().url("http://www.example.com").type("GET").dataType("json").success(new Function() {
    @Override
    public void invoke($ d, Object... args) {
        JSONObject json = (JSONObject) args[0];
        //TODO handle json. If expecting a JSONArray, just cast args[0] to JSONArray.
    }
}).error(new Function() {
    @Override
    public void invoke($ d, Object... args) {
        AjaxError error = (AjaxError) args[0];
        Toast.makeText(MyActivity.this, "Error (" + error.status + "): " + error.reason, Toast.LENGTH_LONG).show();
    }
}));
于 2013-12-16T22:06:31.797 回答
1

使用 asynctask 在加载屏幕时从服务器获取名称。然后您可以使用 AutoCompleteTextView 或 MultiAutoCompleteTextView 来满足您的需求。

您在适配器中指定已获取的名称。在AutoCompleteTextView上查看更多信息

MultiAutoCompleteTextView

于 2012-10-09T06:20:59.393 回答
1

我知道的最接近的是使用 AutoCompleteTextView。您将需要为其创建一个自定义适配器,以便在用户键入任何内容时调用 Web 服务器并基于此返回过滤器结果。

这是一个例子

于 2012-10-09T06:03:18.003 回答