Hiển thị Integer Array lên ListView Android
Ví dụ cơ bản chuyển đổi mảng int[] sang ArrayList<String> để hiển thị trên ListView qua ArrayAdapter.
Bước 1: Tạo dự án mới
Android Studio → File → New Project.
Bước 2: Giao diện (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_marginTop="30dp"
tools:context=".MainActivity">
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Bước 3: Code logic (src/MainActivity.java)
package com.example.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ListView list;
int[] array = {2, 5, 6, 8, 0, 7, 9, 4};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = findViewById(R.id.list);
// Chuyển int[] -> ArrayList<String>
ArrayList<String> arrayList = new ArrayList<>();
for (int value : array) {
arrayList.add(String.valueOf(value));
}
// ArrayAdapter chỉ chấp nhận List<String> hoặc List<CharSequence>
ArrayAdapter adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, arrayList);
list.setAdapter(adapter);
}
}
Lưu ý quan trọng
- ArrayAdapter không hỗ trợ trực tiếp
int[]hoặcInteger[](trừ khi dùng layout custom). - Phải chuyển đổi sang
StringquaString.valueOf()hoặcInteger.toString(). - Layout
android.R.layout.simple_list_item_1chỉ hiển thị 1 dòng text đơn giản.
Cách viết ngắn gọn hơn (Java 8+ / API 24+)
ArrayList<String> arrayList = Arrays.stream(array)
.mapToObj(String::valueOf)
.collect(Collectors.toCollection(ArrayList::new));
Chạy ứng dụng
ListView hiển thị các số: 2, 5, 6, 8, 0, 7, 9, 4 theo thứ tự mảng gốc.
