android: 用simpleadapter显示数据到listview

一,代码:

1,java

package com.example.okdemo1.activity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import com.example.okdemo1.MainActivity;
import com.example.okdemo1.R;
import com.example.okdemo1.model.UserListEntity;
import com.example.okdemo1.model.UserListItemEntity;
import com.google.gson.Gson;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class MylistActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_mylist);

        //获取数据
        List<Map<String, Object>> productData = GetData();

        //装配适配器
        SimpleAdapter adapter = new SimpleAdapter(
                this, // 上下文
                productData, // 数据源
                R.layout.item_user, // 自定义布局资源 item
                new String[]{"name", "description", "image"}, // 数据源中的键数组
                new int[]{R.id.productName, R.id.productDescription, R.id.productImage} // 布局文件中的视图 ID 数组
        );

        ListView listView = findViewById(R.id.list);
        listView.setAdapter(adapter);
    }


    //用于获取数据
    private List<Map<String, Object>> GetData() {
        List<Map<String, Object>> productData = new ArrayList<>();
        //根据数据源中的键数组来填充数据
        //new String[]{"name", "description", "image"},
        // 创建巧克力商品数据
        Map<String, Object> chocolate = new HashMap<>();
        chocolate.put("name", "巧克力");
        chocolate.put("description", "好吃的巧克力");
        chocolate.put("image", R.drawable.a);
        productData.add(chocolate);

        // 创建薯片商品数据
        Map<String, Object> chips = new HashMap<>();
        chips.put("name", "薯片");
        chips.put("description", "薯片真好吃");
        chips.put("image", R.drawable.b);
        productData.add(chips);

        // 创建饼干商品数据
        Map<String, Object> cookies = new HashMap<>();
        cookies.put("name", "曲奇");
        cookies.put("description", "哪里有曲奇");
        cookies.put("image", R.drawable.c);
        productData.add(cookies);

        // 可以继续添加更多商品数据...
        return productData;
    }


 

}

2,xml

activity

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    android:orientation="vertical"
    android:background="#FF6600"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="成绩单"
        android:textSize="24sp"
        android:textColor="#333"
        android:layout_gravity="center_horizontal"
        android:paddingBottom="16dp" />

    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:divider="@android:color/darker_gray"
        android:dividerHeight="2dp"
        android:background="#FFFFFF"
        android:padding="8dp"
        android:layout_marginTop="10dp"
        android:elevation="4dp" />

</LinearLayout>

item

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="10dp">

    <ImageView
        android:id="@+id/productImage"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/ic_launcher_foreground" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:paddingStart="16dp"
        android:paddingEnd="16dp"
        android:gravity="center_vertical">

        <TextView
            android:id="@+id/productName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="商品名"
            android:textSize="18sp"
            android:textColor="@android:color/black" />

        <TextView
            android:id="@+id/productDescription"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="描述"
            android:textSize="14sp"
            android:textColor="@android:color/darker_gray" />
    </LinearLayout>
</LinearLayout>

二,测试效果:

posted @ 2025-04-26 08:45  刘宏缔的架构森林  阅读(16)  评论(0)    收藏  举报