ListView第二节实现图文列表

 首先我们需要先建一个组件的布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal" 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    //使布局内的组件均离边缘16dp
    >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="73dp"
        android:gravity="center_vertical"
        //使文字在组件中上下居中显示
        android:layout_marginLeft="10dp"
        //使该组件离左边的组件间隔10dp
        android:text="TextView" />

 

 然后在主页面进行数据添加



public class MainActivity extends AppCompatActivity {
    private ListView listView;
    //声明listview
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = findViewById(R.id.listView);
        //绑定添加的组件

        List<Map<String,String>> list = new ArrayList<>();
        //创建一个内容是string,string类型的map集合的list集合

        for (int i = 0;i<= 50;i++){
            HashMap<String,String> hashMap  = new HashMap<>();
            //然后用for循环把hasmap内容填装,这里注意造hasmap的声明要在循环里,因为每一条hasmap
            //都是一条记录,如果声明在外面会全都是最后一条
            hashMap.put("客户","客户-" + i);
            list.add(hashMap);
            //再把填装好的hasmap填装进list

        }

        SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.list_item,new String[]{"客户"},new int[]{R.id.textView1});
        // 把准备好的数据放进adapter方法里面。按顺序是:上下文 , 想要放进去的数据 , 想要放进去的
        //布局文件, 最后是想填的值和对应的组件
        listView.setAdapter(adapter);
        //把做好的adapter放进ListView文件中
    }
}

 而加入图片也很简单,只需要将hasmap和list集合的泛型改成string和object类型即可,然后在hasmap中再加入一对名称加图片地址的引用即可,然后在adapter中再加一对from和to就行了

public class MainActivity extends AppCompatActivity {
    private ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = findViewById(R.id.listView);

        List<Map<String,Object>> list = new ArrayList<>();

        for (int i = 0;i<= 50;i++){
            HashMap<String,Object> hashMap  = new HashMap<>();
            hashMap.put("客户","客户-" + i);
            hashMap.put("头像",android.R.drawable.arrow_up_float);
            list.add(hashMap);

        }

        SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.list_item,new String[]{"客户","头像"},new int[]{R.id.textView1,R.id.imageView1});
        listView.setAdapter(adapter);
    }
}

 随便换了个系统自带的图标,最终效果就是这样

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值