Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में Volley ArrayList को कस्टम ऑब्जेक्ट के साथ सॉर्ट करना

परिचय

यह लेख दिखाता है कि Volley से प्राप्त JSON डेटा को कस्टम ऑब्जेक्ट्स की सूची में कैसे पार्स करें और फिर उस सूची को किसी फ़ील्ड (जैसे नाम) के आधार पर सॉर्ट करें।

कार्यान्वयन चरण

चरण 1: build.gradle में निर्भरताएं

implementation 'com.android.volley:volley:1.1.0'

चरण 2: लेआउट (activity_main.xml)

<TextView android:id="@+id/text" ... />

चरण 3: MainActivity.java

public class MainActivity extends AppCompatActivity { 
    TextView textView; 
    RequestQueue queue; 
    String URL = "https://www.mocky.io/v2/597c41390f0000d002f4dbd1"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        textView = findViewById(R.id.text); 
        queue = Volley.newRequestQueue(this); 

        List list = new ArrayList<>(); 

        StringRequest request = new StringRequest(Request.Method.GET, URL, 
            response -> { 
                try { 
                    JSONObject object = new JSONObject(response); 
                    JSONArray array = object.getJSONArray("users"); 
                    for (int i = 0; i < array.length(); i++) { 
                        JSONObject obj = array.getJSONObject(i); 
                        list.add(new UserInfo(obj.getString("name"), obj.getString("email"))); 
                    } 
                    // नाम के अनुसार सॉर्ट करें 
                    Collections.sort(list, (o1, o2) -> o1.name.compareTo(o2.name)); 
                    textView.setText("email: " + list.get(0).email + "\nname: " + list.get(0).name); 
                } catch (JSONException e) { 
                    e.printStackTrace(); 
                } 
            }, 
            error -> Log.d("error", error.toString()) 
        ); 
        queue.add(request); 
    } 

    private class UserInfo { 
        String name, email; 
        UserInfo(String name, String email) { this.name = name; this.email = email; } 
    } 
}

चरण 4: AndroidManifest.xml में इंटरनेट अनुमति

<uses-permission android:name="android.permission.INTERNET" />

व्याख्या

  • JSON प्रतिक्रिया से `users` सरणी निकाली जाती है।
  • प्रत्येक ऑब्जेक्ट से `name` और `email` लेकर `UserInfo` ऑब्जेक्ट बनाए जाते हैं।
  • `Collections.sort` और एक कस्टम `Comparator` का उपयोग करके सूची को नाम के अनुसार सॉर्ट किया जाता है।
  • सबसे पहला (सॉर्ट के बाद) आइटम TextView में प्रदर्शित होता है।
  1. एंड्रॉइड में फाइल अटैचमेंट के साथ ईमेल कैसे भेजें? एंड्रॉइड में फाइल अटैचमेंट के साथ ईमेल कैसे भेजें?

    एंड्रॉइड में इंटेंट का उपयोग करके ईमेल भेजना यह ट्यूटोरियल दर्शाता है कि कैसे एक ईमेल कंपोजर बनाएं जिसमें प्राप्तकर्ता, विषय, संदेश और फाइल अटैचमेंट शामिल हों, फिर डिवाइस पर इंस्टॉल ईमेल ऐप्स का उपयोग करके भेजें। आवश्यक अनुमतियाँ <uses-permission android:name=android.permission.INTERNET /> &l

  1. Android में ListView के लिए कस्टम एडाप्टर कैसे बनाएं? Android में ListView के लिए कस्टम एडाप्टर कैसे बनाएं?

    Android ListView के लिए कस्टम एडाप्टर बनाना यह उदाहरण दर्शाता है कि BaseAdapter को एक्सटेंड करके कस्टम एडाप्टर कैसे बनाया जाए, जो कस्टम डेटा मॉडल और कस्टम रो लेआउट के साथ ListView में डेटा बाइंड करता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: मेन लेआउट (res/

  1. एंड्रॉइड ऐप में कैमरे के साथ कैसे काम करें? एंड्रॉइड ऐप में कैमरे के साथ कैसे काम करें?

    इंटेंट के साथ कैमरा ऐप लॉन्च करके फोटो कैप्चर करें यह उदाहरण दर्शाता है कि MediaStore.ACTION_IMAGE_CAPTURE इंटेंट का उपयोग करके डिवाइस कैमरा कैसे खोलें और कैप्चर की गई फोटो प्राप्त करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में ImageView और बटन res/l