第一波回顾
网络操作
1)URL对象是放链接。
2)HttpURLConnection对象是使URL对象的链接打开。
3)中间设置了一系列之后,connection就可以发起链接了。
4)整个过程,先建立连接,处理流,获得数据。
5)textView有post方法,直接会开一个线程。
6)post指的是一种带有要求的get;而get没有要求,因为URL后面有固定的键值对。
7)JSON大括号指的是:对象;中括号是:数组;对象内的数组,可以创建内部类。
8)数据就是一个JsonObject对象,里面的对象直接用object对象获得,数组要用object的getArray方法获得,并给JsonArray的对象。读数组里的数据用for循环,里面每轮都要new一个object对象和用上面的Array对象[i]来get,后面就直接用这个object对象来get(注意:get里面的名字和url里面的完全一样)。
9)解析Json不需要在子线程。
Handler:开启主线程
1)在耗时的new Thread中传入Message代号,在handler接收代号为msg.what,对的话,执行UI操作。
2)Thread.sleep(),前者是耗时,后面括号放秒数。
3)msg.what是代号,msg、arg1、arg2、obj是message出来的内容,代号对,就可以接收到。
4)静态handler就不会内存泄漏。
5)弱引用里拿到activity:MainActivity activity = weakReference.get();
6)imageView可设置x,y轴。
7)子线程,自动已做了Looper.prepare(),再new Handler,最后Looper.loop()。
AsyncTask:异步加载
1)String...params:表示可变参数。
ListView:
1)
LayoutInflater layoutInflater = (LayoutInflater)context.
getSystemService(Context,LAYOUT_INFLATER_SERVICE);
2)adapter里的自建viewholder是进行缓存的。
3)里面有addFooterView功能和addHeaderView是添加脚布局和头布局。
4)获取应用名字:activityInfo.loadLabel;获取应用图标:activityInfo.loadIcon。
5)在Adapter的getView中,convertView.setOnClickListener,可以设置单个listView的item点击事件;convertView指的是整个那一块区域点击的响应listView也可以set监听。
SharedPreferences、File 本地存储:
1)先创建对象时的第一个参数,文件名无需后缀,后缀自动生成为xml,这个文件的根名是<map。
2)文件权限:
第1位:d 目录,- 普通文件,l 映射;
第2 - 4位:r 可读,w 可写,x 执行;
第5 - 7位:同上,指的是用户的权限;
第8 - 10位:同上上,指的是其他用户的权限。
3)读取内容需要放在数组中。
4)内部存储和私有目录不需要权限。
SQLiteDatabase:
1)insert + into;delete + from;update + 表名;select + from。
2)SimpleCursorAdapter只识别_id,id不可以。
3)操作流程说白了:有一条sql语句,然后执行就可以了。
4)在SQLexpert工具中,查询语句的count:统计总数,select count() from info_tb【括号后可以加一个,age表示看具体】group by age【表示按什么分组】having age > 23【表示只显示满足这个条件的】order by age【按年龄排序】desc【表示降序】*。
5)Dao类里面,先定义一个db,在构造函数里进行数据库的创建和升级;db = helper.getReadable,这句也是在构造函数中;构造函数的参数有上下文。之后就是增删查改的一系列方法。
6)若要传递,在方法内数据根据参数值传递,查询时,把返回值写为Cursor在主活动就可以获取利用了。
7)Dao下的查询和删除参数都是可变长度。