• 安卓学习简记:基础知识(一)


    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的类名。

        action:隐式Intent使用的属性,可以自己设定,是一个字符串。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数据变化的吗?

  • 相关阅读:
    一些Docker 操作集合
    与Flash 中国特供版斗智斗勇
    Linux 电子数据取证入门
    emu8086实现两位数加法运算
    emu8086实现两位数乘法运算
    5种三栏布局的实现方式
    通用事件绑定方法
    随机产生两个数值之间的某个值
    查询字符串中某个字符出现的位置数组
    根据对象属性的属性值,对对象进行排序
  • 原文地址:https://www.cnblogs.com/leomoli/p/4185853.html
Copyright © 2020-2023  润新知