ListView 列表视图

列表视图

上代码

直接run发现没有任何效果

其实ListView还需要给这每一条item填充数据,并且这些item其实也是一种布局

先给这些item进行布局

这里布局也是根据自己需求进行设置,这里我们直接LinearLayout

注:这里我们给个id,字调大一点就行了。有需要的可以再加一个图标,后面加一段文字啥的,按照自己需求来

设置好这俩个布局后,还需设置数据

ListView数据一般都是从网上获取的,并且这些item可能都会有很多数据

所以一般还会创建一个java bean类

这个Bean类里面放文字也好,放图片也好,都可

因为我们这list_item里面只有TextView这一个数据

所以

快捷键alt+ins自动创建Getter和Setter方法

这里我们就给个name,到时候让它显示一下

这样我们的Bean.java也算是完成了

回到MainActivity

因为我们没有从网上获取数据,这里我们直接用一个for循环获取数据

先创建一个List<Bean>数组,把数据都放进去

我们去创建一个BaseAdapter类,就叫MyAdapter        (适配器)

alt+enter快捷键实现这些方法

创建好了我们再回到MainActivity中去,把数据放入到Adapter中去

所以我们再回到去MyAdapter中创建一下这些构造方法

alt+ins快捷键创建构造方法

俩个都选中

回去把构造的俩个参数放进去

再去MyAdapter中

这里我们把

方法里它自动给我们创建的形参名改一下,改成下面这样,方便区分

改完形参名别忘了把方法体内的也改一下

我们需要把这个data

也就是之前在这个地方创建的这些值

传到TextView的每一个item上面

注:这些值在正常开发的时候可能都是从网上获取的

在MyAdapter中再设置一下

run一下看看效果

每滑动一下,都会不断地调用getView的方法

每次在显示的时候,都会调用getView去给每一个item进行设值

接下来再设置ListView每个item的点击事件

实际上ListView也给我们提供了监听方法,有点击和长按的

回到MainActivity中去

run一下

虽然可以,但是ListView这样使用并不是最优的解

回到MyAdapter中,我们看到每次getView()在调用的时候,都要findViewById一下

实际上这个findViewById也是非常耗时的,可以进行优化

一般再在MyAdapter中再创建一个ViewHolder类

然后注释掉之前的第17步

然后第18步报错

因为这个时候要通过viewHolder.textView来调用,所以接着上面第32步注释掉后继续

这样我们getVew在每次调用的时候,就节省了findViewById的调用时间

这就是listView的一个优化,平时在使用listView的时候,这个getView也一般会这样使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏夜追凉丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值