Retrofit Android Tutorial

In this tutorial, we are going to see Retrofit Android tutorial to get data from server.
In previous post, we have seen android JSON parsing tutorial which was very simple.
If you are not aware about Retrofit, it is android http library used to handle HTTP request.You can treat it as a replacement of AsyncTask in previous tutorial.

Why to use Retrofit rather than Volley or AsyncTask.

It is better than Volley and AsyncTask. It takes care of HTTP call, JSON parsing, efficient network management. Retrofit has all the features which you need to call web services. You will directly get Response which you can use to populate data.

Example :

I have already implemented restful webservices json example. I am going to use same json response for rendering it in custom listview.
You can use below link.
https://cdn.rawgit.com/arpitmandliya/AndroidRestJSONExample/master/countries.json
You will get below Json response from above URL:

We are getting above JSONArray from rest web service. If you are not familiar with JSON, you can go through Json tutorial. We are going to render above JSON response to android custom listview as below:

Lets code this example now:

Source code:

Step 1 :Creating Project

Create an android application project named “RetrofitAndroidExample”.

Step 2 : Add Retrofit and json gradle dependency

For using Retrofit library, we need to add Retrofit and volley dependency. Your build.gradle (Module : app )will look as below

Step 3 : Creating Layout

Change res ->layout -> activity_main.xml as below:

We have one button and listview. When you click the button, we are going to populate data in listview by calling restful web services and render it on the listview.

Step 4: Creating layout for Row

As We have declared ListView widget in activity_main.xml. Now we need to provide layout for individual row.
  • Go to res -> layout
  • right click on layout
  • Click on New -> File.
  • Create a file named “row_item.xml” and paste below code in row_item.xml.

Step 5 : Creating model object Country :

If you notice, we are getting Json array from restful web service which has 4 items. Each item have two attributes id and countryName. We are going to create country object for each item.

Step 6:  Creating BaseAdapter for ListView

Before creating MainActivity, we need to create CustomCountryList class for custom ListView row.
This class is used to populating data for ListVIew. getView method is get called for drawing each row.

Step 7 : Creating interface for making HTTP call using Retrofit.

We need to create an interface for making HTTP calls.
We have defined get request in above interface. We do not have to include base url, it is part after base url which we have use. We are going to get List of countries as response here.

Step 8 : Creating MainActivity

Steps for Retrofit call :

  • Create retrofit instance using base url. Retrofit will implicitly use gson to convert JSON to corresponding object. You need to define gson library explicitly in Retrofit 2.0
  • Create api with retrofit’s create method and call getCountries method.
  • Enqueue the request and onResponse will get called if your call is successful else onFailure will get called.

Change src/main/packageName/MainActivity.java as below:

Step 8: Add internet permission in AndroidManifest.xml

Copy following code:

Put it in AndroidManifest.xml

Done, we have added internet permission to AndroidManifest.xml. Your application must be able to access internet now.

Step 9 : Running the app

When you run the app, you will get below screen:

When you click on above button, you will get below screen.

We are done with Android Retrofit tutorial. If you are facing any issue, please comment.

Related Posts

  • Convert ASCII to char in C++
    15 January

    Convert ASCII to Char in C++

    Table of ContentsHow to Convert ASCII values to Char in C++?Convert ASCII to Char in C++ Using Char() FunctionConvert ASCII to Char in C++ Using C-Style CastConvert ASCII to Char in C++ Using the Assignment OperatorConvert ASCII to Character in C++ Using sprintf() FunctionConclusion The characters are represented using integers in most of the encoding […]

  • Split String by pipe in java
    15 January

    Split String by pipe(|) in java

    Table of ContentsHow to split String by pipe in javaUsing split() methodUsing StringTokenizerUsing Pattern class In this post, we will see how to split String by pipe in java. How to split String by pipe in java There are multiple ways to split String by pipe (|) in Java. Using split() method You can use […]

  • In this post, we will see how to generate random number between 1 to 10 in javascript. How to generate random number between 1 and 10 in javascript We can simply Math.random() method to generate random number between 1 and 10 in javascript. `Math.random()` returns a random number between 0(inclusive), and 1(exclusive). That means `Math.random()` returns always number lower than 1. We can use `Math.random()` with `Math.floor()` to generate random integer. Here is generic formula to generate random number in the range. Math.floor(Math.random() * (maximum - minimum + 1)) + minimum In our case, minimum = 1 maximum = 10 so it will be Math.floor(Math.random() * (10 - 1 + 1)) + 1 Math.floor(Math.random() * 10) + 1 So here is the program to generate random number between 1 and 10 in javascript. var randNum = Math.floor(Math.random() * 10) + 1; console.log(randNum) When you run above program, you will get below output: 3 You can obviously get differnt outout as we are generating random number here. Generate 10 random integers in range of 1 to 10 console.log("Generating 10 random integers in range of 1 to 10") for (let i = 0; i < 10; i++) { var randNum = Math.floor(Math.random() * 10) + 1; console.log(randNum) } Generate 10 random integers in range of 1 to 10 7 5 1 10 5 9 7 7 6 2 Generate random number in a range in javascript Here is generic formula to generate random number in a range. function generateRandomInteger(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } // Generate random number between 1 to 10 console.log(generateRandomInteger(1,10)) // Generate random number between 11 to 20 console.log(generateRandomInteger(11,20)) // Generate random number between 21 to 30 console.log(generateRandomInteger(21,30)) 4 17 28 In case, if you don't want to include maximum while generating random numbers, you can use below function. function generateRandomInteger(min, max) { return Math.floor(Math.random() * (max - min)) + min; } That's all about how to generate random number between 1 and 10 in javascript
    15 January

    Generate random number between 1 and 10 in javascript

    Table of ContentsHow to generate random number between 1 and 10 in javascriptGenerate 10 random integers in range of 1 to 10Generate random number in a range in javascript In this post, we will see how to generate random number between 1 to 10 in javascript. How to generate random number between 1 and 10 […]

  • Check if variable is String in Python
    13 January

    Check if variable is String in python

    Table of ContentsHow to check if a given variable is of the string type in Python?Using the isinstance() function.Using the type() function.Check if function parameter is String In this post, we will see what is a string in Python and how to check whether a given variable is a string or not. There are many […]

  • Check if input is Integer in C++
    13 January

    Check If Input Is Integer In C++

    Table of ContentsHow to Check Whether the Input Is an Integer in C++?Check Whether the Input Is an Integer Using the isdigit() Function in C++Check Whether the Input Is an Integer Using the Ascii Values in C++Conclusion C++ is a powerful and popular programming language and we use it widely in coding applications. It provides […]

  • Count the number of characters in a String in Python
    13 January

    Count number of characters in a string in python

    Table of ContentsWays to count the number of characters in a string in PythonUsing the len() functionUsing the for loopUsing the collections.Counter classConclusion In this post, we will see how to count number of characters in a String in Python. We can think of strings as a collection of characters, with every character at a […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.