自定义view

listview与adapter用法

不问归期 提交于 2019-12-04 16:20:19
一个 ListView 通常有两个职责: ( 1 )将数据填充到布局。 ( 2 )处理用户的选择点击等操作。 第一点很好理解, ListView 就是实现这个功能的。第二点也不难做到,在后面的学习中读者会发现,这非常简单。 一个 ListView 的创建需要 3 个元素: ( 1 ) ListView 中的每一列的 View 。( adapter 中的 convertView ) ( 2 )填入 View 的数据或者图片等。( item 项, resource 的 bean 对象) ( 3 )连接数据与 ListView 的适配器。( adapter ) 也就是说,要使用 ListView ,首先要了解什么是适配器。适配器是一个连接数据和 AdapterView ( ListView 就是一个典型的 AdapterView ,后面还会学习其他的)的桥梁,通过它能有效地实现数据与 AdapterView 的分离设置,使 AdapterView 与数据的绑定更加简便,修改更加方便, Android 中提供了很多的 Adapter ,表 4-5 列出了常用的几个。 表 4-5 常用适配器 Adapter 含义 ArrayAdapter<T> 用来绑定一个数组,支持泛型操作 SimpleAdapter 用来绑定在 xml 中定义的控件对应的数据 SimpleCursorAdapter

Android listview与adapter用法

六眼飞鱼酱① 提交于 2019-12-04 16:20:02
一个 ListView 通常有两个职责。 ( 1 )将数据填充到布局。 ( 2 )处理用户的选择点击等操作。 第一点很好理解, ListView 就是实现这个功能的。第二点也不难做到,在后面的学习中读者会发现,这非常简单。 一个 ListView 的创建需要 3 个元素。 ( 1 ) ListView 中的每一列的 View 。 ( 2 )填入 View 的数据或者图片等。 ( 3 )连接数据与 ListView 的适配器。 也就是说,要使用 ListView ,首先要了解什么是适配器。适配器是一个连接数据和 AdapterView ( ListView 就是一个典型的 AdapterView ,后面还会学习其他的)的桥梁,通过它能有效地实现数据与 AdapterView 的分离设置,使 AdapterView 与数据的绑定更加简便,修改更加方便 Android 中提供了很多的 Adapter ,表 4-5 列出了常用的几个。 表 4-5 常用适配器 Adapter 含义 ArrayAdapter<T> 用来绑定一个数组,支持泛型操作 SimpleAdapter 用来绑定在 xml 中定义的控件对应的数据 SimpleCursorAdapter 用来绑定游标得到的数据 BaseAdapter 通用的基础适配器 其实适配器还有很多,要注意的是,各种 Adapter

Android第四十天

跟風遠走 提交于 2019-12-04 16:18:15
1、ListView分页加载 <1>分页的作用 (1)避免一次性加载过多内容时,造成内存溢出; (2)可以增强用户体验。 <2>实现思路 (1)当滚动到最后一条的时候,加载新数据; (2)适配器的数据源要进行累加:listDatas.addAll(list) (3)数据发生变化时,适配器及时通知:adapter.notifyDataSetChanged() (4)判断是否滚到了最后一行 if (firstVisibleItem + visibleItemCount == totalItemCount ) { isBottom = true; } <3>实例步骤 (1)模拟1000条数据,以分页方式显示; (2)使用BaseAdapter自定义适配器显示数据; (3)在ListView下方增加“显示更多”按钮以实现加载下一页数据; (4)ListView.setOnScrollListener()方法设置滚动事件监听器; (5)通过滚动事件监听器判断是否滚动到最底部,若在底部则显示“显示更多“按钮; (6)点击“显示更多”按钮,根据当前的页码与一页显示的记录数,加载数据; (7)将加载的数据追加到适配器的数据源中 2、AdapterView.OnItemClickListener 列表项点击事件监听器:onItemClick(AdapterView<?> parent, View

第02讲集合类和列表类控件

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-04 16:08:23
集合 有了数组为什么还要集合: 数组是固定长度的,集合长度可变(因此,适应场景不同) 同时存储一对一关系的数据 方便增删改查 不能添加重复数据(如set中) Collection Map 接口 HashMap List Queue Set ArrayList LinkedList HashSet 类 Collection存储类的对象,Map存储键值对。 List和Queue存储的对象是有序的,允许重复的,可以为null;Set中存储的对象是无序的,不允许重复的,只能有一个为null。 ArrayList l ArrayList底层是由数组实现的 l 可以动态增长 l 列表尾部添加或删除元素效率高(在中间插入或删除元素需要移动后面的元素) l 更适合查找或更新元素 l 元素可以为NULL add() 插入元素 size() 查看元素个数,遍历输出元素 remove() 移除元素 (remove(“dd”)只会移除一个) 用removeAll(Collection)可以删除所有 HashSet l Set是元素无序,并且不可以重复的集合,称为集 l HashSet是Set的一个重要的实现类 l HashSet只允许有一个Null值 l 具有良好的存取及查找性能 Iterator(迭代器) Iterator接口可以以统一的方式对各种集合元素进行遍历 hasNext(

android--------自定义控件 之 基本流程篇

ぃ、小莉子 提交于 2019-12-04 07:10:02
在我们平常的Android开发中经常和控件打交道,有时Android提供的控件未必能满足业务的需求,这个时候就需要我们实现自定义一些控件 自定义控件可以设计出很多你想要的功能和模块,在开发中是很重要的一部分。 自定义View的价值 能够做到基础控件无法做到的效果,为应用的表现增色; 在多个应用并行开发的团队,将公用的交互效果提取成自定义控件,方便复用,减少不必要的重复劳动; 将控件的内部逻辑封装在自定义View中,便于应用内解耦; 流程图: 自定义控件两种方式: 1. 继承ViewGroup 自定义ViewGroup一般是利用现有的组件根据特定的布局方式来组成新的组件,大多继承自ViewGroup或各种Layout,包含有子View。 例如:ViewGroup、LinearLayout、FrameLayout、RelativeLayout等。 2. 继承View 在没有现成的View,需要自己实现的时候,就使用自定义View,一般继承自View,SurfaceView或其他的View,不包含子View。 例如:View、TextView、ImageView、Button等。 View的三大核心方法onMeasure、onLayout、onDraw onMeasure: 用于测量视图的大小; onLayout: 用于给视图进行布局; onDraw: 用于对视图进行绘制;

手百小程序-自定义组件

ⅰ亾dé卋堺 提交于 2019-12-04 06:18:23
自定义组件的创建和使用 开发者可以将页面内的功能模块抽象成自定义组件,在智能小程序的各个页面中进行使用,提升代码复用度,节省开发成本。 解释: 一个自定义组件由4个文件 (.swan .css .js .json) 组成, 例如包含自定义组件 custom 的项目结构: // 包含自定义组件custom的项目结构 ├── app.js ├── app.json ├── project.swan.json └── components └── custom ├── custom.swan ├── custom.css ├── custom.js └── custom.json 要编写一个自定义组件,首先需要在 json 文件中进行自定义组件声明(在 json 文件中将 component 字段设为 true 可将这一组文件设为自定义组件): // 自定义组件配置 (custom.json) { "component": true } 同时,类似于页面开发。开发自定义组件,可以在 swan 文件中编写组件模板,在 css 文件中引入样式,它们的写法和页面的写法类似。 示例代码 <!-- 自定义组件内部的模板 (custom.swan) --> <view class="name"> {{name}} </view> /* 自定义组件的css,在该自定义组件内部生效 (custom

uni-app 自定义属性设置无法获取

旧街凉风 提交于 2019-12-04 04:07:22
小程序中的自定义属性要加上 data- 开头 获取的 时候是 e.currentTarget.自定义的属性名 <template> <view> <view :data-kk="value" @click="ck">ddd</view> </view> </template> <script> export default { data() { return { value:'内容' } }, methods: { ck(e){ console.log(e.currentTarget.kk) } } } </script> 来源: https://www.cnblogs.com/wxqworld/p/11830180.html

[Android] LayoutInflater原理分析,带你一步步深入了解View(一)

旧巷老猫 提交于 2019-12-04 01:16:23
有段时间没写博客了,感觉都有些生疏了呢。最近繁忙的工作终于告一段落,又有时间写文章了,接下来还会继续坚持每一周篇的节奏。 有不少朋友跟我反应,都希望我可以写一篇关于View的文章,讲一讲View的工作原理以及自定义View的方法。没错,承诺过的文章我是一定要兑现的,而且在View这个话题上我还准备多写几篇,尽量能将这个知识点讲得透彻一些。那么今天就从LayoutInflater开始讲起吧。 相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用于加载布局的。而刚接触Android的朋友可能对LayoutInflater不怎么熟悉,因为加载布局的任务通常都是在Activity中调用setContentView()方法来完成的。其实setContentView()方法的内部也是使用LayoutInflater来加载布局的,只不过这部分源码是internal的,不太容易查看到。那么今天我们就来把LayoutInflater的工作流程仔细地剖析一遍,也许还能解决掉某些困扰你心头多年的疑惑。 先来看一下LayoutInflater的基本用法吧,它的用法非常简单,首先需要获取到LayoutInflater的实例,有两种方法可以获取到,第一种写法如下: [java] view plain copy LayoutInflater

Android开发操作案例分享!

一笑奈何 提交于 2019-12-03 18:54:58
Android开发操作案例分享! Android LRecyclerView 操作案例分享-实现下拉刷新、滑动到底部自动加载,一直想抽空写下这个开源项目 www.lampbrother.net ,但是各种原因没有抽时间,今天还是趁着工作间隙写下了这篇博客,与大家分享。 简介 LRecyclerView是支持addHeaderView、 addFooterView、下拉刷新、分页加载数据的RecyclerView。 它对 RecyclerView 控件进行了拓展,给RecyclerView增加HeaderView、FooterView,并且不需要对你的Adapter做任何修改。 主要功能 下拉刷新、滑动到底部自动加载下页数据; 可以方便添加Header和Footer; 头部下拉样式可以自定义; 具备item点击和长按事件。 网络错误加载失败点击Footer重新请求数据; 可以动态为FooterView赋予不同状态(加载中、加载失败、滑到最底等)。 感谢 如果我比别人看得远些,那是因为我站在巨人们的肩上。 (牛顿) 本开源控件是基于 HeaderAndFooterRecyclerView 开源项目而来,在原基础上进行了扩充。在此感谢兄弟连教育(www.lampbrother.net)的分享 Gradle Step 1. 在你的根build.gradle文件中增加JitPack仓库依赖。

微信小程序开发深入解读

强颜欢笑 提交于 2019-12-03 14:40:19
下面结合开发文档以及个人开发经验对微信小程序关键部分进行解读(不是入门教程,具体入门读者可以看官网),希望看完的读者对微信小程序有大概的认识或者有所启发。 本文同步于个人博客 http://www.imhjm.com/article/5971c1cc7dd03248a2e8d57e 官方开发文档 https://mp.weixin.qq.com/debug/wxadoc/dev/index.html 官方开发者社区 https://developers.weixin.qq.com/ 运行环境 微信小程序运行在三端:iOS、Android 和 用于调试的开发者工具。 三端的脚本执行环境聚以及用于渲染非原生组件的环境是各不相同的: 在 iOS 上,小程序的 javascript 代码是运行在 JavaScriptCore 中,是由 WKWebView 来渲染的,环境有 iOS8、iOS9、iOS10 在 Android 上,小程序的 javascript 代码是通过 X5 JSCore来解析,是由 X5 基于 Mobile Chrome 53 内核来渲染的 在 开发工具上, 小程序的 javascript 代码是运行在 nwjs 中,是由 Chrome Webview 来渲染的 引用: https://mp.weixin.qq.com/debug/wxadoc/dev/devtools