我正在开发一个我有搜索选项的应用程序。在那个搜索框中,如果我输入“a”,我希望所有朋友的所有名字都以a开头,我将从网络服务器获取。但为此,我要在输入每个字母的同时提出要求。但是当我用谷歌搜索时,我得到了混合反应。有人说Android中无法调用Ajax。基本上Android基于java。那么为什么不能执行AJAX调用。如果有可能,有人可以引导我找到与Android中的AJAX调用相关的良好链接吗?
答案 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)
是的,这是可能的,但有一些条件和限制。
查看这些资源以获取更多信息:
Can you use AJAX calls with Android?
Android: Implication of using AsyncTask to make repeated Ajax Calls
https://developer.android.com/guide/topics/search/search-dialog.html
http://www.grokkingandroid.com/android-tutorial-adding-search-to-your-apps/
答案 2 :(得分:1)
我知道最近的是使用AutoCompleteTextView。您需要为它创建一个自定义适配器,只要用户键入任何内容并根据该结果返回过滤结果,就会调用Web服务器。
答案 3 :(得分:1)
使用asynctask在加载屏幕时从服务器获取名称。 然后,您可以使用AutoCompleteTextView或MultiAutoCompleteTextView来满足您的需求。
您可以在适配器中指定已获取的名称。有关AutoCompleteTextView
的更多信息,请参阅