SimpleAdapter的简单使用
SimpleAdapter适配器的简单使用
1.SimpleAdapter
1.简介
- 显示复杂的列表项,如图片
2.SimpleAdapter的构造函数
- 上下文
- 数据(保存map的list集合)
- 子布局
- key
- 子布局中的id
注意:key和id是一一对应的关系
3.SimpleAdapter案例-用户简介
3.1子布局文件user_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/userimg"
android:adjustViewBounds="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxHeight="150dp"
android:maxWidth="60dp"
android:src="@mipmap/girl"
/>
<TextView
android:layout_toRightOf="@id/userimg"
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名"
android:textSize="25dp"
/>
<TextView
android:layout_toRightOf="@id/userimg"
android:layout_below="@id/username"
android:id="@+id/userdesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户简介"
android:textSize="15dp"
/>
</RelativeLayout>
</LinearLayout>
3.2布局文件
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30dp"
android:text="SimpleAdapter实现"
android:gravity="center"
android:textColor="@color/black"
/>
<ListView
android:id="@+id/slistvew"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
/>
3.3Java代码
- 参数1:可以获取Adapter对象
- 参数2:子布局View对象
- 参数3:当前点击的是第几个子项
- 参数4:和参数3一致
//1.获取控件
ListView slistvew=findViewById(R.id.slistvew);
//2.创建集合
String usernames[]={"张三","李四","王五"};
int userimgs[]={R.mipmap.boy,R.mipmap.girl,R.mipmap.city};
String userdescs[]={"帅气!!!","美丽动人!","轻巧!!!"};
List<Map<String,Object>> list=new ArrayList<>();
for (int i = 0; i < 3; i++) {
Map<String,Object> map=new HashMap<>();
map.put("name",usernames[i]);
map.put("userimg",userimgs[i]);
map.put("userdesc",userdescs[i]);
list.add(map);
}
//3.创建适配器
SimpleAdapter adapter=new SimpleAdapter(this,list,R.layout.user_item,new String[]{"name","userimg","userdesc"},new int[]{R.id.username,R.id.userimg,R.id.userdesc});
//4.绑定适配器
slistvew.setAdapter(adapter);
// 5.事件监听
/*
* 点击子项的时候会触发
* 参数1:可以获取Adapter对象
* 参数2:子布局View对象
* 参数3:当前点击的是第几个子项
*参数4:和参数3一致
* */
slistvew.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
System.out.println(adapterView);
System.out.println(view);
System.out.println(i);
System.out.println(l);
TextView username=view.findViewById(R.id.username);
TextView userdesc=view.findViewById(R.id.userdesc);
ImageView userimg=view.findViewById(R.id.userimg);
String user="用户名:"+username.getText()+",个性签名:"+userdesc.getText();
Toast.makeText(ListViewSimpleAdapter.this, ""+user, Toast.LENGTH_SHORT).show();
}
});