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>
二,测试效果:

浙公网安备 33010602011771号