ListView--SimpleAdapter(安卓开发学习笔记————16)

这个博客展示了如何在Android应用中使用SimpleAdapter来动态地从数据列表填充ListView。通过创建一个Map集合,存储关键值对(如姓名、性别和年龄),并将这些数据映射到指定的视图ID,实现了ListView的个性化展示。代码示例中,SimpleAdapter的构造函数详细解释了参数的用法,包括上下文、数据列表、布局资源ID和字段映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. SimpleAdapter及其参数说明:
    请添加图片描述

  2. 它的优缺点:
    在这里插入图片描述

  3. 代码示例:
    (1)Java:

package com.example.test;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.service.autofill.OnClickAction;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

import org.w3c.dom.Text;

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

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = (ListView)findViewById(R.id.tv_show);

        List<Map<String,?>> datalist = new ArrayList<>();       //Map和List都是集合

        for (int i = 0; i < 50; i++) {

            Map<String,String>  map = new HashMap<>();
            map.put("name","张三" + i);
            map.put("sex",i%2==0?"男":"女");
            map.put("age",10+i+"");

            datalist.add(map);

        }

        String[] from = {"name","age","sex"};       //from中的key:
        int[] to ={R.id.tv_name,R.id.tv_age,R.id.tv_sex};

        SimpleAdapter simpleAdapter = new SimpleAdapter(this,datalist,R.layout.item_userinfo
        ,from,to);

        listView.setAdapter(simpleAdapter);

    }

}m

(2)布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools">

    <ListView
        android:id="@+id/tv_show"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>

</RelativeLayout>

(3)关于SimpleAdapter及其参数(选中SimpleAdapter,按住ctrl,点击左键即可查看!):

 public SimpleAdapter(Context context, List<? extends Map<String, ?>> data,
            @LayoutRes int resource, String[] from, @IdRes int[] to) {
            
        mData = data;
        mResource = mDropDownResource = resource;
        mFrom = from;
        mTo = to;
        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值