Home » Android » Can ajax call be done in Android?

Can ajax call be done in Android?

Posted by: admin June 15, 2020 Leave a comment

Questions:

I’m developing an application in which I’ve got search option. In that search box, if I type ‘a’ I want all names of all my friends starting with a, which I’ll get from web server. But for that I’ve to make request simultaneously with typing each letter. But when I googled, I got mixed reactions. Some people said Ajax call is not possible in Android. Basically Android is based on java. Then why is not possible to perform AJAX calls. Could anyone guide me to a good link related to AJAX call in Android if it is possible ?

How to&Answers:

You can use droidQuery, which is The Android port of jQuery, and includes most of the features and syntax of jQuery, including Ajax. For example:

$.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();
    }
}));

Answer:

Yes it is possible, but with a few conditions and restrictions.

Check out these resources for more info:

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/

Answer:

Closest I know is using an AutoCompleteTextView. You will need to make a custom adapter for it that makes calls to the web server whenever a user types anything and returns filter results based on that.

Here’s an example.

Answer:

Fetch names from the server on loading the screen, using asynctask.
Then you can make use of AutoCompleteTextView or MultiAutoCompleteTextView to achieve your need.

You specify already fetched names in the adapter. See more on AutoCompleteTextView

and MultiAutoCompleteTextView