1.布局文件中的android:id="@id/......"和android:id="@+id/......"的区别就是带+号的是新建一个id,而没有+
号的不新建id,在原有的id中查找。
2.布局文件layout中OK按钮和cancel按钮的数序需要注意,必须是Cancel在前,OK在后........
3.重载一个菜单响应的按钮,函数写错了.....于是学到了一个方法可以防止写错重载函数,在eclipse中重载函数的方法:source-->override/implement method来选择需要重载的函数。
4.安卓创建新数据库的语句一定要注意空格的使用,不能是两个单词连在一起,不然就会出现无法创建数据库的错误。从而无法运行!
5.基于监听的事件处理是针对系统自带的给各种UI组件,因为我们没有办法撰写里面的事件处理函数,所以只能创建一个监听器,设置进去。但是如果使自己重写的UI组件,那就可以直接重载事件处理函数而不用设置监听器了,而这种方式就是基于回调的事件处理。大概是这样。
6.Log.v或者Log.d函数貌似可以在LOGCAT里面打印内容。System.out.println可以在console中打印内容。
7.Fragment里面的OnCreateView函数是将布局xml文件加载到一个view里面(相当于activity里面的oncreate函数,但是又不完全是,这个函数中只加载布局文件,不设置其他的adapter容器),然后在onCreate里面将前面生成的view加载到当前Fragment中(这个地方貌似也不对,前面创建的view不需要设置就会自己加载了,不需要在这个地方手动加载),并且完成一些adapter的设置。
-----第七点是错的,Fragment中的onCreateView是在OnCreate函数的后面调用,onCreate创建Fragment后,才会调用onCreateView来加载相关的布局文件。至于设置容器,应该是这样:若容器是用在Fragment中,则在onCreate中设置,而容器如果使用在布局文件中的默写UI组建,如ListView则在Oncreate中设置井ListView组件即可。
8.intent和intentfilter:
a.intent:
component:显式Intent的时候使用的属性,直接设置要调用的activity的类名。
ps:一个intent只能设置一个action属性
category:隐式Intent使用的属性,可以自己设定,也是字符串。
data:隐式Intent使用的属性,也是可以自己设定。
type:和data会产生覆盖效果。也是隐式Intent的属性。
extra:这个是隐式和显式均可以使用,用来在Intent中传递数据。
flag:告知被调用的对象一些额外的动作。
b.intentfilter:
在androidmainifest.xml的目标activity、service、broadcastreceiver中使用intentfilter标签设置匹配的intent各项属性。
其中action和category是一起使用的,如果intent中设置了action和category两个属性,则必须目标intentfilter中的action和category必须和intent中设置的一致才能被调用。
category如果没有设置,会有一个默认的DEFAULT值。
data和type是一起使用的,都在data标签下。他们还分为很多小属性。他们的匹配关系是,只要intent中的属性值>=intentfilter中的属性值就可以调用目标组件。
PS:这里的>=指的是data和type小属性的个数。intentfilter中有的所有data属性值只要在intent的data属性值中找到相等的,目标组件就会被调用。在有data属性的时候intent的
action和category属性不是必须的。但是在intentfilter中需要设置action,但是可以自己任意设置。而intentfilter中的category属性是默认的DEFAULT即可。
是必须设置的。
9.R.string.string1和getResources().getText(R.string.string1)两者的区别:
a.前一种获取到的只是一个int型的“索引”,因为android所有的资源会自动生成一个R.java的索引文件,而前一种获取到的就是这样一个索引。
b.后一种则是通过索引找到了string1这个字符串。
10.安卓的大小屏幕布局,drawable资源都会系统自己根据屏幕大小来调节,我们只需要做好不同的资源就可以了。当然同一个资源需要使用相通的key。
11.安卓的国际化也很简洁,就是根据规定的命名方式,将各个资源创建不同国家的内容就可以了。当然同一个资源的key要一致。
12.安卓的绘制和MFC的绘制是类似的,先新建一个Paint,然后安卓实在Canvas中进行绘制就可以了。重载onDraw函数即可。
13.SimpleDataFormat使用来将时间格式化为字符串的方法,使用方法:
a.SimpleDataFormat sdf=new SimpleDataFormat("yyyy年MM月dd日"+“hh:mm:ss”); //定义格式化的方法;
b.sdf.format(data); //data为Data的对象。
14.ContentProvider和Uri和ContentRosolver的关系:
a.A程序中的ContentRosolver调用的任何函数其实就是Uri指向的某程序中ContentProvider中实现的函数。Uri的作用应该就是告知A程序中的ContentRosolver需要调用的
ContentProvider的位置。
b.注意:ContentProvider的onCreate函数在ContentProvider被其他程序的ContentRosolver第一次调用的时候才会被调用。
15.ContentObserver就只是用来坚挺ContentProvider数据变化的吗?