कस्टम ऑब्जेक्ट के साथ JSON ऐरे सॉर्टिंग
यह उदाहरण दिखाता है कि Volley से प्राप्त JSON ऐरे को कस्टम UserInfo ऑब्जेक्ट में पार्स करके ID के आधार पर कैसे सॉर्ट करें।
चरण 1-2: प्रोजेक्ट और लेआउट बनाएं
पिछले उदाहरणों की तरह प्रोजेक्ट बनाएं और समान लेआउट उपयोग करें।
चरण 3: 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 id = object1.getString("id");
list.add(new UserInfo(name, id));
}
Collections.sort(list, new Comparator<UserInfo>() {
@Override
public int compare(UserInfo o1, UserInfo o2) {
return o1.id.compareTo(o2.id);
}
});
textView.setText("id: " + list.get(0).id + " \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, id;
public UserInfo(String name, String id) {
this.name = name;
this.id = id;
}
}
}
चरण 4-5: मैनिफेस्ट और ग्रेडल
इंटरनेट अनुमति और वॉली निर्भरता जोड़ें (पिछले उदाहरण देखें)।
परिणाम
