上周碰到了一个问题,就是我自定义了一个View进行绘图,如果这个图多了以后,一个屏幕显示不下,于是我第一个想到的就是将这个View放在ScrollView中,可是如果放在ScrollView中的话,这个View就画不出来,于是上网查找这个问题,说是在View中添加一个下面的函数:

protectedvoid onMeasure(int widthMeasureSpec, int heightMeasureSpec){

setMeasuredDimension(800,60);

}

可是我添加了以后还是画不出来,于是只能换一个思路了。

因为我自定义的View是画一个窄长的矩形来展现Schedule的,于是我就在想用ListView来承载这30个矩形。

怎么将这些矩形放在ListView中的Item中呢?我试着尝试了addView这个方法,可是不管用。于是我就查找了一下资料,详细了解了一下关于ListView的原理。

列表的显示需要三个元素:

1.ListVeiw:  用来展示列表的View。

2.适配器 :用来把数据映射到ListView上

3.数据:    具体的将被映射的字符串,图片,或者基本组件。

根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter,这三种适配器的使用大家可学习下官网上面的使用或者自行百度谷歌,一堆DEMO!!!其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方便的把数据库的内容以列表的形式展示出来。

系统要绘制ListView了,他首先用getCount()函数得到要绘制的这个列表的长度,然后开始绘制第一行,怎么绘制呢?调用getView()函数。在这个函数里面首先获得一个View(这个看实际情况,如果是一个简单的显示则是View,如果是一个自定义的里面包含很多控件的时候它其实是一个ViewGroup),然后再实例化并设置各个组件及其数据内容并显示它。好了,绘制完这一行了。那再绘制下一行,直到绘完为止,

但是这些还不能有效的解决我的问题,于是我又查找了资料,发现我需要自定义一个Adapter将自定义View加载到ListViw中。

而在所有代码都写好了以后,发现自定义View还是无法加载到ListView中,我试着将自定义View改为TextView,发现可以加载,Button也可以。最后我向组长进行了请教,他告诉我说要在自定义的Adapter中加入

protectedvoid onMeasure(int widthMeasureSpec, int heightMeasureSpec){

setMeasuredDimension(800,60);

}

我发现加入后,完美的解决了我的问题。

转载于:https://blog.51cto.com/hddev/1217501

关于ListView 自定义 Adapter的问题相关推荐

  1. android 中自定义安装,Android开发中ListView自定义adapter的封装

    [引入] 我们一般编写listView的时候顺序是这样的: •需要展示的数据集List •为这个数据集编写一个ListView •为这个ListView编写一个Adapter,一般继承自BaseAda ...

  2. Android自定义Adapter的ListView的思路及代码

    Android自定义Adapter的ListView的思路及代码,需要的朋友可以参考一下 width="650" height="200" align=&quo ...

  3. Android 自定义Adapter以实现自定义填充ListView的Item

    1>实体类---即ListView中各个Item中填充的内容 package com.demo.cxc.compoundview.com.demo.cxc.entity;import java. ...

  4. android笔试添加自定义服务,Android之Listview(item为单选题)自定义adapter,像考试时前面的10几道单选题的实现...

    用于展现重复性的东西,Listview比较好用,看了别人的自定义Adapter(item是EditText,能够很好地获取到每一个item的EditText值).又由于在做项目的需要,故特制了一个it ...

  5. android 单选框 icon,Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解...

    标签: 对话框就是一个AlertDialog,但是一个简单的AlertDialog,我们却可以将它玩出许多花样来,下面我们就来一起总结一下AlertDialog的用法.看看各位童鞋在平时的工作中否都用 ...

  6. Android listview与adapter用法

    2019独角兽企业重金招聘Python工程师标准>>> 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListVi ...

  7. Android控件——ListView之Adapter提供数据(其二)

    2019独角兽企业重金招聘Python工程师标准>>> 上一节中一些列表集合数据到手机屏幕时,通常采用ListView组件+ArrayAdapter. 虽然它能为我们提供展示数据列表 ...

  8. listview与adapter用法

    Android listview与adapter用法 listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的 ...

  9. Android入门第26天-在Android里自定义Adapter

    介绍 在上一篇"SimpleAdapter"章节中,我们看到了把:ListView和Listview内部详细页面进行分离的Adapter的设计手法. 可是,这个SimpleAdap ...

最新文章

  1. OpenCV Manager package was not found Try to install it?
  2. Comprehensive Guide to build a Recommendation Engine from scratch (in Python) / 从0开始搭建推荐系统...
  3. 计算机网络工程应用,计算机网络工程网络命令的应用
  4. geo数据差异分析_GeoDiver:GEO数据挖掘分析利器
  5. (网络编程)InetAddress(表示ip地址的类)相关使用
  6. cookie放在请求头_Web安全:你必须知道的“Cookie安全”
  7. 《精通Spring 4.x 企业应用开发实战》学习笔记
  8. Linux嵌入式入门
  9. 小程序json字符串取值问题,怎么取出来的是undefined,eval函数不能用?
  10. 【51nod - 1108】距离之和最小 V2(曼哈顿距离,中位数性质)
  11. java adminlte 使用_AdminLTE2管理后台自定义
  12. 前端又省事了,Chrome直接支持lazyload延迟加载
  13. 防止NSTimer和调用对象之间的循环引用
  14. java中飞飞检查异常_Springboot项目如何在controller层统一返回数据以及处理异常
  15. linux 查找文件_LINUX常用命令全集
  16. 动态规划练习合集(c++)
  17. 一些忘记了的....
  18. DataFormatString格式字符串
  19. Python实现图片标记分类文件夹自动归类文件的脚本
  20. 服务器硬盘开机吱吱响,硬盘吱吱响怎么回事?电脑硬盘响动原因和解决方法

热门文章

  1. 多个线程作用于同一个runnable对象
  2. Mysql 架构及优化之-索引优化
  3. DNS中的七大资源记录介绍
  4. str()和repre()的区别
  5. 生产环境该如何选择lvs的工作模式,和哪一种算法
  6. because the principal dbo does not exist 问题解决方法
  7. Windows-Server下加强系统安全性系列之方案【八】
  8. OC中的几种延迟执行方式
  9. 重装win7后修改桌面路径到D盘
  10. ubuntu让/etc/hosts修改后立刻生效