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

Cách hiển thị mảng số nguyên (Integer Array) trong ListView Android

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ặc Integer[] (trừ khi dùng layout custom).
  • Phải chuyển đổi sang String qua String.valueOf() hoặc Integer.toString().
  • Layout android.R.layout.simple_list_item_1 chỉ 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.

Cách hiển thị mảng số nguyên (Integer Array) trong ListView Android