首页 > 其他分享 >ListView的基本使用

ListView的基本使用

时间:2022-12-11 23:00:45浏览次数:41  
标签:基本 ListView private itemBean context 使用 itemBeans view

布局文件

        <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/lv"
        />

创建Item_Layout.xml 文件 、编辑为 ListView 显示的格式

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp"
    >
    <ImageView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:id="@+id/iv_img"
        android:background="@drawable/ic_baseline_settings_24"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="雨中漫步"
        android:id="@+id/tv_title"
        android:layout_toRightOf="@id/iv_img"
        android:textSize="30sp"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tv_body"
        android:text="人生就像旅行"
        android:layout_below="@id/tv_title"
        android:layout_toRightOf="@id/iv_img"
        android:padding="30dp"
        />


</RelativeLayout>

创建实体类(JavaBean)、存放数据要显示的数据

public class ItemBean {

    private String title;
    private String content;
    private int imgResId;

}

创建适配器继承BaseAdapter、实现4个方法

    //数据源
    private List<ItemBean> itemBeans;
    //布局数据源
    private LayoutInflater layoutInflater;
    //上下文
    private Context context;

    public MyAdapter(Context context , List<ItemBean> itemBean) {
        this.context = context;
        this.itemBeans = itemBean;
        layoutInflater = LayoutInflater.from(context);
    }
//为ListView显示内容
    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        //创建每一个条目
        view = layoutInflater.inflate( R.layout.list_item_layout , viewGroup , false);
        //找到条目里面控件Id
        ImageView imageView = view.findViewById(R.id.iv_img);
        TextView textViewTitle = view.findViewById(R.id.tv_title);
        TextView textViewBody = view.findViewById(R.id.tv_body);
        //拿到数据
        ItemBean itemBean = itemBeans.get(i);
        //为控件设置要显示的内容
        imageView.setImageResource(itemBean.getImgResId());
        textViewTitle.setText(itemBean.getTitle());
        textViewBody.setText(itemBean.getContent());
        //最后返回条目
        return view;
    }

最后Activity代码

    //声明控件
    private ListView listView;
    private List<ItemBean> itemBeans;
    private MyAdapter myAdapter;

初始化控件

    private void initView() {
        listView = findViewById(R.id.lv);
    }

准备数据(也可以请求网络中的然后Json解析)

        private void initData() {
        //创建数组
        itemBeans = new ArrayList<>();
        //准备数据
        ItemBean itemBean1 = new ItemBean();
        itemBean1.setTitle("我是i但撒谎嗲是丢啊是大i撒谎的奥萨蒂还大还大阿萨");
        itemBean1.setContent("ldksudoijclxjd4fef51er35f1");
        //数据添加到数组中
        itemBeans.add(itemBean1);
    }

实例化Adapter

    private void initAdapter() {
        myAdapter = new MyAdapter(this,itemBeans); 
        //为ListView绑定Adapter
        listView.setAdapter(myAdapter);
        //绑定点击事件
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                //获取条目内容、进行其他操作
                ItemBean itemBean = itemBeans.get(i);
            }
        });
    }

标签:基本,ListView,private,itemBean,context,使用,itemBeans,view
From: https://www.cnblogs.com/loulan/p/16974669.html

相关文章

  • 配置WSL2使用windos代理
    配置WSL2使用本机代理设置Win10防火墙这一步是最重要的一步,也是最坑的一步,需要在Win10防火墙中允许V某进行公用和专用网络的访问!只要设置这个就可以了,不需要调整......
  • Mybatis Generator使用
    官方文档配置方式一1.在resources文件夹下创建一个目录mybatis-generator,在目录mybatis-generator下创建文件generatorConfig.xml(此处的目录名可任意取)  2. pom.x......
  • 使用网络爬虫自动抓取图书信息
    网络爬虫是一种从互联网上进行开放数据采集的重要手段。本案例通过使用Python的相关模块,开发一个简单的爬虫。实现从某图书网站自动下载感兴趣的图书信息的功能。主要实现的......
  • 使用kubeadm快速部署一个k8s集群
    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署:#创建一个Master节点$kubeadminit#将一个N......
  • 如何使用Skopeo做一个优雅的镜像搬运工
    本章目录:0x00基础介绍0x01安装编译1.源码编译(静态)2.分发包安装3.容器安装运行0x02快速上手1.命令浅析2.Skopeo初体验Skopeologin/loout-远程仓库AuthSkopeoinspect......
  • Rust中super关键字和self关键字的使用
    随笔:fnfunction(){println!("functionglobal");}pubmodmod1{pubfnfunction(){super::function();println!("functionmod1");}pubmo......
  • 使用 dragonflydb 作为godns 的redis 存储
    玩法没变,可以参考我以前写的,主要是调整了redis为dragonflydb测试下参考docker-compose文件version:"3"services:redis:image:docker.dr......
  • SNMPWALK 安装与使用详解
     简介snmpwalk是SNMP的一个工具,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。通过snmpwalk也可以查看支持SNMP协议(可网管)......
  • STL使用迭代器遍历和删除元素
    STL使用迭代器遍历和删除元素vector迭代器使用不当造成挂死或死循环错误用法#include<vector>voidvec_erase_item(std::vector<int>&vec,intvalue){for(au......
  • 使用这个多功能的 Linux 命令转换音频文件
    SoXSoundExchange甚至可以为你的音频文件添加特效。我工作需要使用音视频媒体,不管你处理哪种媒体,你肯定知道标准化是一种有价值的工具。就像你不会试图把一个分数加到一......