不知不觉一个月又过去了,中级部分已经学习完毕,给大家讲讲学习心得,希望对新人有所帮助,中级部分主要是一些控件的设置,以及实现一些控件的功能。

Android通知系统,Tostask 比较常用;进度条progressBar,用于下载和音乐播放器以及用户等待时间等;

Listview常常用到的:

功能:用来批量展示信息,以垂直列表形式显示所有列表项

listview是一个组合控件

基本控件:内容和控件在一个对象里面

组合控件:内容和控件不在同一个对象里面

listview

listview本身这个控件: 框跟行分隔

Adapter(适配器): 所有行内容

listview实现步骤:

1、在布局文件上面设置一个listview控制

2、创建一个listview的行布局(通常用RelativeLayout)

3、在Activity里面查找到listview控件对象。

4、为listview控件对象设置一个适配器(对象.setAdapter(适配器对象))

5、创建一个适配器对象(通常用的是BaseAdapter)

BaseAdapter adapter = new BaseAdapter() {

//设置listview行布局和内容

public View getView(int position, View convertView, ViewGroup parent) {

//得到一个布局转换器

LayoutInflater layoutInflater = getLayoutInflater();

//通过布局转换器把行布局文件转换成可用的布局对象

RelativeLayout inflate =

(RelativeLayout) layoutInflater.inflate(R.layout.list_item, null);

//查找布局对象里面存放的控件

TextView textView = (TextView) inflate.findViewById(R.id.textView1);

//获取行号对应的信息内容

String text = arrayList.get(position);

textView.setText(text );

return inflate;

}

//决定listview的行数

public int getCount() {

return arrayList.size();

}

};

注意:getView()方法调用:界面上每出现一行就调用一次getview();

getCount() 第一次调用在getview之前

注意:listview的高度不能设置成wrap_content。可以指定高度XXdp或者设置长match_praent

线程也很重要,主要用到AsyncTask (异步加载):

好处:1、不需要我们自己创建线程,降低难度

2、线程池:复用了Thread对象,提高了性能

缺点:使用步骤稍多,代码可读性差一点

使用步骤:

1、创建一个类继承AsyncTask

三个泛型参数: 1、决定了task.execute(xxx)的参数类型

以及doinbackground()方法的参数类型

2、决定了doinbackground()里面调用publishProgress(xx)的参数类型

以及onProgressUpdate()方法传入的参数类型

3、决定了doinbackground()方法的返回值类型

以及onPostExecute()的参数类型

2、重写doinbackground()方法

耗时操作放在这个方法里面执行(系统new的子线程)

return(执行耗时操作之后返回一个值给main线程)

3、重写onPostExecute()

调用时间:doinbackground()执行完后,返回一个值的时候,onPostExecute()才被调用

接收doinbackground返回值。

所在线程:main线程

4、启动异步任务

a、XXXAsyncTask task = new XXXAsyncTask();创建AsyncTask对象

b、task.execute(xxxx) 启动异步加载

中间过程如何发送消息到主线程

1、在doinbackground方法里面调用:publishProgress()

2、重写onProgressUpdata(),接收数据,并更新UI(main线程里面)

onPreExecute()方法是在doinbackground之前运行

AsyncTask内部方法的先后顺序

onPreExecute() ————》doinbackground()——————》onPostExecute()

调用 publishProgress() ————————》onProgressUpdata()

还有就是数据的读取跟解析 目前用的最多就是JSON。

网络传输中,数据的组织方式:

xml,json,http

xml 可扩展的标记语言

跨平台、依赖于内容的技术,简单的数据存储语言。

解析xml文件的方式:

三种: sax dom pull

sax解析器:

一种解析速度快,占用内存少的xml解析器。

事件驱动,不会把所有文件加载到内存

startDocument()

当遇到文件开头的时候会触发这个方法

startElement(String uri, String localName,

String qName, Attributes attributes)

当读到一个元素节点开始的时候会触发这个方法。

localName:不带前缀的标签名

attributes:带有属性和内容

endElement()

当读到一个元素节点结束的时候会触发这个方法。

characters()

读取到文本节点的时候会触发这个方法

endDocument()

当遇到文件结束的时候会触发这个方法

dom解析器:

一次性读取文件所有内容,性能比较差。适合服务端编程。

数据以树状结构存在。

xmlpull

类似sax(pull不会自动读取完整的文件)

适应嵌入式设备,占用内存少,API比较简单

assets文件夹:

1、assets文件下的文件在打包后会原封不动的保存在apk包里面,不会被编译成二进制。

2、assets文件下的文件不会被映射到R文件,访问的时候需要AssetsManager类

3、aseets文件下可以有目录结构,也就是说在aseets文件下可以再创建新的文件夹

raw

json格式:

相对于xml格式,更节省空间。

json对象:{"key1":value,"key2":value}

1、大括号开始结束{}

2、内容部分每条数据都是以“,”分隔

3、每条数据都是以键值对形式构成的,key必须是字符串;

值可以是:string、double、int、long、boolean,

json对象,json数组。

例如:{"name":"Tom","sex":"man","age":20,"id":"350767678676787"}

注:json是可以嵌套的。

jsonArray

[

{"name":"Tom","sex":"man","age":20,"id":"350767678676787"},

{"name":"Tom","sex":"man","age":20,"id":"350767678676787"}

]

注意:json数据文件要保存成“utf-8 无BOM”

android中级培训,Android 中级学习心得相关推荐

  1. 一次公司培训后的学习心得

    一次公司培训后的学习心得 这篇培训心得写于2019年9月.当时公司组织一批人参加了一个三天两夜的封闭培训,培训机构是一家叫做大脑银行的公司,当时一起受训的人员超过千人. 培训,大家都懂得,一群人听一个 ...

  2. 北大青鸟accp培训 :ACCP学员学习心得体会

    北大青鸟accp培训 :ACCP学员学习心得体会                                  -王钰飞 from: [url]http://www.accp-teem.com.c ...

  3. android emulator培训,android emulator(未完)

    分类: 嵌入式 2011-10-14 12:09:57 ========= help for option -sysdir: use '-sysdir ' to specify a directory ...

  4. 计算机审计中级培训体会,2019年计算机审计中级培训心得体会-穆超

    2019年计算机审计中级培训心得体会 计算机审计课程在各科老师的指导下结束了,从初次接触计算机审计这个名词到终于自己上手做计算机审计,有限的时间里我对这门课程有了一点的了解,也体会到在计算机时代,计算 ...

  5. 半学期学计算机有感论文,【计算机学习心得论文】_计算机学习心得论文参考资料-毕业论文范文网...

    英语学习的一点心得 英语学习的一点心得英语学习的一点心得,一提到学习英语,很多同学就觉得是个头疼的问题.更有同学说,我天生没有英语细胞.我觉得,英语成绩上不去,还是跟自己的学习态度和方法有很大关系.英 ...

  6. 中级计算机培训班心得,计算机中级培训学习心得体会

    1/3计算机中级培训学习心得体会随着信息技术的高速发展并迅速渗透到社会生活的各个方面,计算机日益成为人们学习.工作.生活不可缺少的基本工具.然而这个继续学习将是展现自我能力的一个好时机,在这个学期里我 ...

  7. 中级计算机培训结业鉴定,计算机中级培训学习心得体会

    计算机中级培训学习心得体会 当我们积累了新的体会时,应该马上记录下来,写一篇心得体会,这样能够让人头脑更加清醒,目标更加明确.那么心得体会怎么写才恰当呢?下面是小编收集整理的计算机中级培训学习心得体会 ...

  8. 审计署计算机培训心得体会,审计署计算机中级培训心得体会

    <审计署计算机中级培训心得体会.doc>由会员分享,可免费在线阅读全文,更多与<审计署计算机中级培训心得体会>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存 ...

  9. 审计署计算机培训心得体会,审计署计算机中级培训心得体会2018

    <审计署计算机中级培训心得体会.doc>由会员分享,可免费在线阅读全文,更多与<审计署计算机中级培训心得体会2018>相关文档资源请在帮帮文库(www.woc88.com)数亿 ...

最新文章

  1. 卓有成效的管理者应该借助哪些团队协作工具?
  2. “四非”高校南京工业大学,17天内三连击Nature、Science!实为深藏不露
  3. python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...
  4. TDD, what, why, how
  5. 《NodeJS开发指南》第五章微博实例开发总结
  6. JAVA大数_棋盘覆盖
  7. gpu处理信号_GPU显卡不仅用来打游戏那么简单,它还可以用于通用加速计算
  8. AGC002(D~F)【Kruskal重构树,博弈论,dp】
  9. java 为文件及文件夹添加权限
  10. 存储对手机性能的影响
  11. RocketMQ源码解析-PushConsumer(2)
  12. list python 访问 键值对_学完Python,我决定熬夜整理这篇总结...
  13. find命令使用及实例
  14. VM ware 12安装教程
  15. Stata:产生唯一数据编码的三种方法
  16. PHP 互联网架构师成长之路*「swoole」终极指南
  17. 高德api只显示省级地图
  18. 正六边形:判断点是否在正六边形内
  19. 运维学习之lvm(逻辑卷管理)
  20. 线性回归与非线性回归

热门文章

  1. mysql ignore详解_MySQL replicate-ignore-db详解
  2. UML中各种图形的关系和用法
  3. 如何提高本地文件上传至百度云的速度_【软件推荐】满速下载软件,说出来你可能不信最高速度达到150m/s...
  4. 记一次 Intellij IDEA 的外观改造过程 - 好看的代码样式 + 炫酷的键入效果
  5. 天星数科首页CSS布局回顾
  6. 【西语】【5】Qué clase de persona eres 你是什么样的人
  7. Arcgis实例操作19--面要素距离点最近的位置、线要素切割面、计算有毒气体的开敞空间面积
  8. url去重的几种方式
  9. 2021了,最流行的密码依旧是123456
  10. JavaEE中,考勤(签到签退)功能的实现