Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách sắp xếp dữ liệu Volley trong Android

Giới thiệu

Bài viết demo cách tải danh sách JSON từ server bằng thư viện Volley, sau đó sắp xếp tên người dùng theo thứ tự alphabet.

Các bước thực hiện

Bước 1: Tạo project & thêm dependency

Trong build.gradle (Module: app) thêm:

dependencies {
    implementation 'com.android.volley:volley:1.2.1'
    // các dependency khác...
}

Bước 2: Giao diện (activity_main.xml)

<TextView
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:textSize="20sp" />

Bước 3: Model & Logic (MainActivity.java)

package com.example.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
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.List;

public class MainActivity extends AppCompatActivity {

    private TextView textView;
    private RequestQueue queue;
    private static final String URL = "https://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);

        StringRequest request = new StringRequest(Request.Method.GET, URL,
            response -> {
                try {
                    JSONObject obj = new JSONObject(response);
                    JSONArray users = obj.getJSONArray("users");
                    List names = new ArrayList<>();

                    for (int i = 0; i < users.length(); i++) {
                        names.add(users.getJSONObject(i).getString("name"));
                    }

                    Collections.sort(names); // Sắp xếp A-Z
                    textView.setText("Danh sách đã sắp xếp:\n" + names.toString());
                } catch (JSONException e) {
                    e.printStackTrace();
                    textView.setText("Lỗi parse JSON");
                }
            },
            error -> textView.setText("Lỗi mạng: " + error.getMessage())
        );

        queue.add(request);
    }
}

Bước 4: Quyền Internet (AndroidManifest.xml)

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

Giải thích

  • Sử dụng StringRequest để GET dữ liệu JSON.
  • Parse mảng users, lấy trường name vào ArrayList.
  • Collections.sort() sắp xếp tự nhiên theo Unicode.