android学习笔记

    技术2022-05-20  41

    1、ctril+shift+o,能够让eclipse导入你所缺的packages到你的项目中。

    2、context是android里面的程序上下文,是一个handle对于系统。它提供很多服务如获取资源、访问数据库和配置等等。activity是继承于context类。

    3、ViewGroup.LayoutParams类定由views 类使用去告诉他们的父类它们如何被laid out.。

         最基本的LayoutParams类定义了 view的width和height. 它还可以确定下面两个方面:i

    FILL_PARENT  意味着view类和他的父类一样大(unplus paddding)。WRAP_CONTENT  意味着它的大小随它的内容来(plus padding)。an exact number

    4、所有的Android的 layout文件书写步骤:

     

         a、以XML header line开头:<?xml version="1.0" encoding="utf-8"?>开头

         b、声明布局,如<LinearLayout>

         c、声明android系统的XML各个标签的命名空间。android="http://schemas.android.com/apk/res/android"

    5、在xml文档中id前面的“@”用来声明XML解析器需要parse 和 expand ID字符串并将其作为一种ID资源,“+”表示如果此ID不存在则需     要创建这个ID资源。

    6、android.R类似乎一组已由平台定义好的资源可以供你使用,而projectname.R则是由你自己project定义的资源集合。

    7、在activity的onCreat(Bundle)回调函数里面进行activity的初始化工作。通常都调用setContentView(int)来传入一个layout资源,设计你的UI   界面。之后可以通过findViewById(int)来获取你需要交互的UI widgets。

    8、增添一个menu item最简单的方式是通过MenuInflater传入一个XML文件。响应menuitem点击事件的方式可以通过在这两个回调函数里面onOptionsItemSelected(MenuItem)和onContextItemSelected(MenuItem)进行处理。

    9、startActivityForResult和onActivityResult两个函数相当于实现了异步的RPC远程调用。提倡activity用这种方式利用另一个activity来完成工作,并share service。

    10、layout_weight用于 LinearLayouts中表明此View的 "importance" to the layout. 默认值为0,意味着他们仅仅占据屏幕上足够显示内容的大小。赋予>=0的值,意味它会占用更多的空间。

    11、当创建了一个新的Activity时,需要在AndroidManifest.XML文件里声明有它,这样安卓操作系统才知道有哪些activity以及如何调用它。 

    12、android工程所有资源信息都是由HashMap<Integer,Object>来存储的。key值就是R.java中的静态标识符,value就是相对应的各种对象信息(组件、图片、字符等等),当工程被载入时,所有资源都被加载到HashMap中去,这样就可通过key值定位到相应的资源。

    资源加载的过程大致如下1,解析res文件夹下的各种文件,如果是xml文件调用java反射机制解析成相应的对象;2,由res文件夹下文档的目录层级结构来匹配R.java中相对应的静态变量名称,并取出变量值作为key值;3,将步骤2中key值和步骤1中的value值放入到HashMap<Integer,Object>中.而Context类中的getResource()方法实际上就是返回这个HashMap对象。

    12、android中的mvc模式:res/layout文件夹下的所有xml文件就是页面视图View,业务逻辑(Control)就可以具体到某一个Activity类、Service类或者是Broadcast类等等。通过setContentViewById(id)方法,将业务逻辑层与视图层进行绑定,而setContentViewById(id)方法中实际上是对模型R.java文件的查找操作,通过传递过来的方法参数id来找到合适的页面layout。


    最新回复(0)