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ườngnamevàoArrayList. Collections.sort()sắp xếp tự nhiên theo Unicode.