补充:什么时候需要强转
1. 父类转化为子类时需要。
A extend B.
那么:B = A(子类赋值给父类,不需要)
A = (A)B 此时需要
2. 基本数据的长数据变为短数据类型时。
char -> byte -> short -> int -> long 此顺序不需要强转,相反则需要。
| | |
-> float -> double
————————————————
访问网络需要加Intnet权限.android.permission.INTERNET
___
当我们TextView显示不全的时候,我们可以使用<ScrollView>控件;
使用方法 :
<ScrollView
android:xxxxxxx
>
<TextView
android:xxxxxxx
/>
</ScrollView>
___________
将流转换成字符串:
ByteArrayOutputStream 作用是将数据写入 内存中,成为缓存。
flush() 是清空,而不是刷新啊。
一般主要用在IO中,即清空缓冲区数据,就是说你用读写流的时候,其实数据是先被读到了内存中,然后用数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了 close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先flush(),先清空数据。
————
Handler :用处就是,把你子线程得到的结果,通过handler返回给主线程,让你去主线程更新UI
——————
将读取流装换成位图:
使用 adb -s emulator-xxxx可以在多模拟器的情况下,进入指定的模拟器
然后在指定的输入框 输入内容.
___
如何用手机浏览器访问www:
现在浏览器上获取 user_agent:xxxxxxxxxxx
然后使用 connection.setRequestProperty("key",val);
_____
Json:
格式一: json对象,{key:value,key:value,key:value} 键值对直接用 , 分开,键值之间用 :
键 本身必须是字符串常量
{name : '张三'}
{'name':'张三'}
是等价的
值 加不加引号,是有区别的,不加引号是变量,加引号常量字符串
格式二:json数组, [值1, 值2 ,值3 ] 数组结构
组合后复杂格式
[{name:'aaa'}, {name:'bbb'}, {name:ccc}] 表示三个对象数组
自定义控件一定要实现父控件的三个构造方法;
——————
如何将从url上面 得到的流 转换成 指定的 编码:
____
吐司也算更新UI 因为他也要到界面去显示,所以注意 吐司不能在子线程里面执行。
————
注意一点,如果数据库id设置为主键,那么就不会出现重复的id.也就是说你先从数据库显示数据,然后在从网络请求数据。之后得到的数据保存到数据库中。
如果你没有设置主键为id 那么 就会出现重复的信息,在下次打开软件的时候。
或者你可以在保存网络资源到数据库的时候先清空数据库。