0% found this document useful (0 votes)
5 views9 pages

JSON Data Processing in Android

This document provides a step-by-step guide to create an Android application that fetches and displays JSON data in a RecyclerView. It includes instructions for setting up the project, modifying layout files, creating a data model, configuring Retrofit for network calls, and implementing the RecyclerView adapter. Additionally, it suggests optional enhancements like search functionality and pagination.

Uploaded by

rinkupawar697
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views9 pages

JSON Data Processing in Android

This document provides a step-by-step guide to create an Android application that fetches and displays JSON data in a RecyclerView. It includes instructions for setting up the project, modifying layout files, creating a data model, configuring Retrofit for network calls, and implementing the RecyclerView adapter. Additionally, it suggests optional enhancements like search functionality and pagination.

Uploaded by

rinkupawar697
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

✅ 1.

Create New Android Project

 Open Android Studio and create a new project.

 Choose "Empty Activity".

 Name it, e.g., JsonRecyclerViewApp.

✅ 2. Modify activity_main.xml

<!-- res/layout/activity_main.xml -->

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="[Link]

xmlns:tools="[Link]

android:id="@+id/mainLayout"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

<!-- Progress bar for loading indicator -->

<ProgressBar

android:id="@+id/progressBar"

android:layout_centerInParent="true"

android:visibility="gone"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

<[Link]

android:id="@+id/recyclerView"

android:layout_below="@id/progressBar"

android:layout_width="match_parent"
android:layout_height="match_parent"/>

</RelativeLayout>

✅ 3. Create item_layout.xml

<!-- res/layout/item_layout.xml -->

<?xml version="1.0" encoding="utf-8"?>

<[Link]
xmlns:android="[Link]

android:layout_margin="8dp"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<LinearLayout

android:padding="16dp"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<TextView

android:id="@+id/titleText"

android:textStyle="bold"

android:textSize="18sp"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

<TextView

android:id="@+id/descriptionText"

android:textSize="14sp"
android:layout_marginTop="4dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</LinearLayout>

</[Link]>

✅ 4. Create a Data Model Class

// [Link]

public class DataItem {

private String title;

private String description;

public String getTitle() {

return title;

public String getDescription() {

return description;

✅ 5. Setup Retrofit for JSON Fetching

Add dependencies to [Link] (app):

implementation '[Link].retrofit2:retrofit:2.9.0'

implementation '[Link].retrofit2:converter-gson:2.9.0'

implementation '[Link]:recyclerview:1.3.1'

implementation '[Link]:cardview:1.0.0'

Create the Retrofit Interface:


// [Link]

import [Link];

import [Link];

import [Link];

public interface ApiService {

@GET("your_endpoint_here") // Replace with your endpoint path

Call<List<DataItem>> getDataItems();

✅ 6. Create Retrofit Client

// [Link]

import [Link];

import [Link];

public class RetrofitClient {

private static final String BASE_URL = "[Link] // Replace with actual


base URL

private static Retrofit retrofit;

public static Retrofit getRetrofitInstance() {

if (retrofit == null) {

retrofit = new [Link]()

.baseUrl(BASE_URL)

.addConverterFactory([Link]())

.build();

return retrofit;
}

✅ 7. Create RecyclerView Adapter

// [Link]

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

public class DataAdapter extends [Link]<[Link]> {

private List<DataItem> dataList;

public DataAdapter(List<DataItem> dataList) {

[Link] = dataList;

@NonNull

@Override

public DataViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

View view = [Link]([Link]())

.inflate([Link].item_layout, parent, false);

return new DataViewHolder(view);

}
@Override

public void onBindViewHolder(@NonNull DataViewHolder holder, int position) {

DataItem item = [Link](position);

[Link]([Link]());

[Link]([Link]());

@Override

public int getItemCount() {

return [Link]();

public static class DataViewHolder extends [Link] {

TextView titleText, descriptionText;

public DataViewHolder(@NonNull View itemView) {

super(itemView);

titleText = [Link]([Link]);

descriptionText = [Link]([Link]);

✅ 8. MainActivity Code

// [Link]

import [Link];

import [Link];
import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

public class MainActivity extends AppCompatActivity {

RecyclerView recyclerView;

ProgressBar progressBar;

DataAdapter dataAdapter;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

[Link](savedInstanceState);

setContentView([Link].activity_main);

recyclerView = findViewById([Link]);

progressBar = findViewById([Link]);

[Link](new LinearLayoutManager(this));

fetchData();

}
private void fetchData() {

[Link]([Link]);

ApiService apiService = [Link]().create([Link]);

Call<List<DataItem>> call = [Link]();

[Link](new Callback<List<DataItem>>() {

@Override

public void onResponse(Call<List<DataItem>> call, Response<List<DataItem>>


response) {

[Link]([Link]);

if ([Link]() && [Link]() != null) {

List<DataItem> dataItems = [Link]();

dataAdapter = new DataAdapter(dataItems);

[Link](dataAdapter);

} else {

[Link]([Link], "Data load failed",


Toast.LENGTH_SHORT).show();

@Override

public void onFailure(Call<List<DataItem>> call, Throwable t) {

[Link]([Link]);

[Link]([Link], "Network error: " + [Link](),


Toast.LENGTH_LONG).show();

});
}

✅ 9. Run the Application

 Replace "[Link] with a real JSON endpoint.

 Test the app on a device or emulator.

 Make sure internet permission is added in [Link]:

<uses-permission android:name="[Link]" />

✅ Optional Enhancements

 Search functionality: Use SearchView and filter the adapter list.

 Pagination: Load data page by page using scroll listener.

 Sorting: Use [Link]() or Comparator on the list before setting the adapter.

 Loading animation: Add animations or shimmer effect using third-party libraries.

You might also like