android学习笔记

来源:互联网 发布:音乐编辑软件手机版 编辑:程序博客网 时间:2024/05/18 00:08

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。