我正在开发一个应用,其中有一个搜索选项。在搜索框中,如果我输入'a',我希望从Web服务器获取所有以a开头的朋友的姓名。但是为了实现这一点,我必须同时发送每个字母的请求。但是当我做了一些谷歌搜索后,我得到了不同的反应。有些人说Android中不可能进行Ajax调用。基本上,Android是基于Java的。那么为什么不能执行AJAX调用呢?是否有人能够引导我到一个关于在Android中进行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();
}
}));
我知道的最接近的方法是使用AutoCompleteTextView。您需要为其制作一个自定义适配器,每当用户键入任何内容时,它会调用Web服务器并返回基于过滤结果的筛选结果。
在屏幕加载时,使用异步任务从服务器获取名称。然后,您可以利用AutoCompleteTextView或MultiAutoCompleteTextView来实现您的需求。
您可以在适配器中指定已经获取的名称。更多信息请参见AutoCompleteTextView和MultiAutoCompleteTextView。