SimpleAdapter使用详解

在这里插入图片描述
MainActivity.class

package com.example.ruan.listviewlianxifuxi;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;

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

public class MainActivity extends AppCompatActivity {
     private ListView listView;

     private String[]  textbiao;//创建数组存储数组

     private  int[] image;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView=(ListView)this.findViewById(R.id.listview);
         textbiao=new String[]{"水星","金星","木星","火星","地球","土星"};//输入数据
         image=new int[]{R.mipmap.shuixing,R.mipmap.jinxing,R.mipmap.muxing,R.mipmap.huoxing,R.mipmap.diqiu,R.mipmap.tuxing};//int型,存放地址的id
         
///SimpleAdapter的第二个参数是**List<Map<String,Object>>型的对象**
           List<Map<String,Object>> data=new ArrayList<Map<String, Object>>();
           for(int i=0;i<textbiao.length;i++) {
               Map<String, Object> map = new HashMap<>();//创建Map对象
               //~~Map map = new HashMap();你定义的是一个接口~~ 
               map.put("image",image[i]);
               map.put("text",textbiao[i]);
               data.add(map);
           }

        /**
        SimpleAdapter的工作:
                1.从List集合中拿出每一个Map对象
                2.将Map中每一个键对应的值拿出来,放到相对应的控件中去
           * 第一个参数,上下文对象
         * 第二个参数,List<Map<String,Object>>  类型    是要放到ListView中的数据
         * 第三个参数,列表项布局id
         * 第四五参数,指明了Map中数据与列表控件的对应关系。第四个参数为字符串数据,Map中数据的键
         * 第五个参数,列表项中控件的id
         * */
        SimpleAdapter adapter=new SimpleAdapter(this,data,R.layout.item_list,new String[]{"image","text"},new int[]{R.id.imageview,R.id.textbiao});

        listView.setAdapter(adapter);
       listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
           @Override
           public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
               
           }

           @Override
           public void onNothingSelected(AdapterView<?> adapterView) {

           }
       });
    }
}

详细代码:https://blog.csdn.net/qq_43615815/article/details/102614643

发布了105 篇原创文章 · 获赞 37 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43615815/article/details/102940459
今日推荐