可以在Android中完成ajax调用吗?

时间:2012-10-09 05:48:03

标签: android ajax

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

4 个答案:

答案 0 :(得分:4)

您可以使用{{3>}, 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();
    }
}));

答案 1 :(得分:3)

答案 2 :(得分:1)

我知道最近的是使用AutoCompleteTextView。您需要为它创建一个自定义适配器,只要用户键入任何内容并根据该结果返回过滤结果,就会调用Web服务器。

Here's an example

答案 3 :(得分:1)

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

您可以在适配器中指定已获取的名称。有关AutoCompleteTextView

的更多信息,请参阅

MultiAutoCompleteTextView