相比于SimpleAdapter,不仅可以显示数据,还可以根据数据设定不同的逻辑。
layout-item_info:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
用于展示性别头像
<ImageView
android:id="@+id/image_sex"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/age"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
public class MainActivity extends AppCompatActivity {
List<UserInfo>datalist;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView=(ListView)findViewById(R.id.my_lv);
datalist=new ArrayList<>();
for(int i=0;i<50;i++){
UserInfo userInfo=new UserInfo();//添加数据
userInfo.name="张三"+i;
userInfo.age=10+i;
userInfo.sex=i%2==0?"男":"女";
datalist.add(userInfo);
}
UserInfoListAdapter userInfoListAdapter=new UserInfoListAdapter();
listView.setAdapter(userInfoListAdapter);
}
class UserInfoListAdapter extends BaseAdapter{//选中 UserInfoListAdapter,option+回车
@Override
public int getCount() {
return datalist.size();
}
@Override
public Object getItem(int i) {
return datalist.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View itemRootview= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_info,null);
TextView name=(TextView)itemRootview.findViewById(R.id.name);
name.setText(datalist.get(i).name);
TextView sex=(TextView)itemRootview.findViewById(R.id.sex);
sex.setText(datalist.get(i).sex);
TextView age=(TextView)itemRootview.findViewById(R.id.age);
age.setText(datalist.get(i).age+"");//转成 字符串
ImageView imagesex=(ImageView)itemRootview.findViewById(R.id.image_sex);
if(datalist.get(i).sex.equals("男")){
imagesex.setBackgroundResource(R.drawable.male);//显示男头像
}
else{
imagesex.setBackgroundResource(R.drawable.female);//显示女头像
}
return itemRootview;
}
}
class UserInfo{//新建用户类
String name;
int age;
String sex;
}
}