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