Android开发---从零搞起5

来源:互联网 发布:002174游族网络 编辑:程序博客网 时间:2024/05/17 08:24

1、this.onBackPressed();返回按钮方法

2、enum类型
注意各元素间的符号
public enum UserResult {unexist, incorrect, success}
public enum Level {level1(1), level2(2), level3(3), level4(4), level5(5);}

3、public abstract int getInt (String key, int defValue)

从preferences中获取一个int类型的值。参数key获取的preference的名称。defValue:当此preference不存在时返回的默认值。

返回值:如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个int类型,则抛出ClassCastException异常

4、<meta-dataandroid:name="string"
 android:resource="resource specification"
 android:value="string"/>
被包含于:
<activity>
<activity-alias>
<service>
<receiver>
说明:这个元素用name-value对的格式给其父组件提供任意可选的数据。一个组件元素能够包含任意多个<meta-data>子元素,所有这些元素中定义的值会被收集到一个Bundle对象中,并且提供给组件的PackageItemInfo.metaData属性字段。

5、java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。
   单例模式有以下特点:
  1、单例类只能有一个实例。
  2、单例类必须自己自己创建自己的唯一实例。
  3、单例类必须给所有其他对象提供这一实例。
  单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。

6、android ListView 几个重要属性
stackFromBottom属性,设置该属性之后你做好的列表就会显示你列表的最下面,值为true和false


transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部。android:transcriptMode="alwaysScroll"  


cacheColorHint属性,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了

divider属性,该属性作用是每一项之间需要设置一个图片做为间隔,或是去掉item之间的分割线

android:divider="@drawable/list_driver"  其中  @drawable/list_driver 是一个图片资源,如果不想显示分割线则只要设置为android:divider="@drawable/@null" 就可以了

fadingEdge属性,上边和下边有黑色的阴影android:fadingEdge="none" 设置后没有阴影了

scrollbars属性,作用是隐藏listView的滚动条,android:scrollbars="none"与setVerticalScrollBarEnabled(true);的效果是一样的,不活动的时候隐藏,活动的时候也隐藏

 drawSelectorOnTop属性   android:drawSelectorOnTop="true" 点击某一条记录,颜色会显示在最上面,记录上的文字被遮住,所以点击文字不放,文字就看不到android:drawSelectorOnTop="false"点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的

 

7、instanceof是Java、php的一个二元操作符(运算符),和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。可以用在继承中的子类的实例是否为父类的实现。相当于c#中的is操作符。


8、Andorid.util  包下的DisplayMetrics  类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。 为了获取DisplayMetrics  成员,首先初始化一个对象如下:

DisplayMetrics metrics  = new DisplayMetrics(); 

getWindowManager().getDefaultDisplay().getMetrics;

注:构造函数DisplayMetrics 不需要传递任何参数;调用getWindowManager() 之后,会取得现有Activity 的Handle ,此时,getDefaultDisplay() 方法将取得的宽高维度存放于DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素”而非“相对像素”。


9、LayoutInflater的作用和findViewById()差不多,不同之处在于LayoutInflater是找layout文件夹下的某个xml布局文件!而 findViewById()是找某一个xml下的具体 widget控件。LayoutInflater可以将一个xml布局文件转化为View 类型


10、contentDescription在android是什么作用
设置View的备注说明,作为一种辅助功能提供,为一些没有文字描述的View提供说明,如ImageButton。这里在界面上不会有效果,自己在程序中控制,可临时放一点字符串数据。


11、view.getLayoutParam
这个类是用来取得它所有的父布局中的一个参数,如果一个布局中我们只写一个ImageView,我们调用imageView.getLayoutParams()根本就不能取得数据,因为它需要一个父布局来提供这个参数。