কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে Volley ArrayList কাস্টম অবজেক্ট দিয়ে সোর্ট করুন


Volley JSON রেসপন্স থেকে কাস্টম অবজেক্ট লিস্ট সোর্টিং

এই উদাহরণটি দেখাবে কিভাবে Volley দিয়ে সার্ভার থেকে JSON ডেটা ফেচ করে কাস্টম অবজেক্টের ArrayList-এ সংরক্ষণ এবং সোর্ট করা যায়।

ধাপ ১: নতুন প্রজেক্ট তৈরি

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 (src/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 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; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; 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);       final List<UserInfo> list=new ArrayList<>();       queue = Volley.newRequestQueue(this);       StringRequest request = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {          @Override          public void onResponse(String response) {             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");                   String email =object1.getString("email");                   list.add(new UserInfo(name,email));                }                Collections.sort(list, new Comparator<UserInfo>() {                   @Override                   public int compare(UserInfo o1, UserInfo o2) {                      return o1.name.compareTo(o2.name);                   }                });                textView.setText("email: "+list.get(0).email+ " \nname: "+list.get(0).name);             } catch (JSONException e) {                e.printStackTrace();             }          }       }, new Response.ErrorListener() {          @Override          public void onErrorResponse(VolleyError error) {             Log.d("error",error.toString());          }       });       queue.add(request);    }    private class UserInfo {       String name,email;       public UserInfo(String name, String email) {          this.name=name;          this.email=email;       } } }

ধাপ ৪: 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" />             <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />             <category android:name="android.intent.category.LAUNCHER" />          </intent-filter>       </activity> </application> </manifest>

ধাপ ৫: build.gradle এ ডিপেন্ডেন্সি

apply plugin: 'com.android.application' android {    compileSdkVersion 28    defaultConfig {       applicationId "com.example.myapplication"       minSdkVersion 15       targetSdkVersion 28       versionCode 1       versionName "1.0"       testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {       release {          minifyEnabled false          proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'       }    } } 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' }

অ্যাপ্লিকেশন চালান

ডিভাইস সংযুক্ত থাকলে Run আইকনে ক্লিক করুন। নাম অনুযায়ী সর্ট করা প্রথম ইউজারের ইমেইল এবং নাম দেখাবে।

অ্যান্ড্রয়েডে Volley ArrayList কাস্টম অবজেক্ট দিয়ে সোর্ট করুন


  1. অ্যান্ড্রয়েডে কাস্টম রিংটোন বা অ্যালার্ম সাউন্ড বাজানোর উপায়

  2. এন্ড্রয়েডে ফাইল সংযুক্ত করে ইমেইল পাঠানোর পদ্ধতি

  3. অ্যান্ড্রয়েডে ListView-এর জন্য কাস্টম অ্যাডাপ্টার তৈরির পদ্ধতি

  4. অ্যান্ড্রয়েড অ্যাপে ক্যামেরা ব্যবহার করার পদ্ধতি