Volley লাইব্রেরি ব্যবহার করে JSON অ্যারে অবজেক্টের এলিমেন্ট পড়া
এই উদাহরণে দেখানো হয়েছে কিভাবে Volley ব্যবহার করে একটি API থেকে JSON রেসপন্স আনার পর JSON অ্যারেতে থাকা প্রতিটি অবজেক্টের নির্দিষ্ট ফিল্ড (যেমন name) পড়া যায়।
পদক্ষেপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project এ যান এবং প্রজেক্টের জন্য প্রয়োজনীয় বিবরণ পূরণ করুন।
পদক্ষেপ ২: লেআউট ফাইল সংশোধন করুন (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:textSize="30sp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
পদক্ষেপ ৩: MainActivity.java-তে লজিক যোগ করুন
package com.example.myapplication;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
TextView textView;
RequestQueue queue;
String URL = "https://www.mocky.io/v2/597c41390f0000d002f4dbd1";
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.text);
queue = Volley.newRequestQueue(this);
StringRequest request = new StringRequest(Request.Method.GET, URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
textView.setText(response.toString());
try {
JSONObject object = new JSONObject(response);
JSONArray array = object.getJSONArray("users");
for (int i = 0; i < array.length(); i++) {
JSONObject object1 = array.getJSONObject(i);
String name = object1.getString("name");
textView.setText(name);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("error", error.toString());
}
});
queue.add(request);
}
}
পদক্ষেপ ৪: AndroidManifest.xml-এ ইন্টারনেট পারমিশন যোগ করুন
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
পদক্ষেপ ৫: build.gradle-এ Volley ডিপেন্ডেন্সি যোগ করুন
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.volley:volley:1.1.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
অ্যাপ্লিকেশন চালান
ডিভাইস কম্পিউটারের সাথে সংযুক্ত থাকলে, Android Studio-তে Run আইকনে ক্লিক করে অ্যাপটি চালান। ডিভাইসে JSON অ্যারেতে থাকা সব ইউজারের নাম প্যারিটি করে দেখাবে (শেষটির নাম থাকবে)।