安卓学习笔记1

1 四大组件:activity,service,BroadcastReceiver,ContentProvider,intent

intent 消息体 作用:传递数据 从一个界面切换到另一个界面的时候需要用

2 布局管理器:

线性布局:android.widget.LinearLayout
绝对布局:android.widget.AbsoluteLayout
表格布局:android.widget.TableLayout
帧布局:android.widget.FrameLayout
相对布局:android.widget.RelativeLayout

布局用线性和相对就可以搞定全部了

View的子类,ViewGroup可以充当其他控件的容器

3.Java 四种内部类:

http://blog.csdn.net/qq435757399/article/details/7037007

4.java类名.this

this指的是当前正在访问这段代码的对象,当在内部类中使用this指的就是内部类的对象, 
为了访问外层类对象,就可以使用外层类名.this来访问,一般也只在这种情况下使用这种

public class Activity01 extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        /* 设置显示main.xml布局 */
        setContentView(R.layout.main);
        /* findViewById(R.id.button1)取得布局main.xml中的button1 */
        Button button = (Button) findViewById(R.id.button1);
        /* 监听button的事件信息 */
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v)
            {
                /* 新建一个Intent对象 */
                Intent intent = new Intent();
                /* 指定intent要启动的类 */
                intent.setClass(Activity01.this, Activity02.class);
                /* 启动一个新的Activity */
                startActivity(intent);
                /* 关闭当前的Activity */
                Activity01.this.finish();
            }
        });
    }
}

 5,内部接口:

为了弄清楚内部接口是如何工作的,我们可以拿它与内部类作比较。内部类可以被认为是一个外部类内部定义的一个常规方法。因为一个方法可以被声明为静态和非静态,类似的内部类也可以被声明为静态和非静态。静态类类似于静态方法,它只能访问外部类的静态成员属性。非静态方法可以访问外部类的所有成员属性。

  • 一种对那些在同一个地方使用的接口进行逻辑上分组;
  • 封装思想的体现;
  • 因为接口是不能实例化的,内部接口只有当它是静态的才有意义。因此,默认情况下,内部接口是静态的,不管你是否手动加了static关键字。

  • public class MyOuter4 {
    	private int size=5;
    	private int id;
    	
    	public interface OnClickListener{
    		void onClick(int id);
    	}
    	
    	public void onClick(OnClickListener obj){
    		obj.onClick(this.id);
    	}
    	
    	public Object makeInner(int localvar){
    		final int finallocalvar = localvar;
    		return new Object(){
    			public String toString(){
    				return "OuterSize="+size+"
    finalLocalvar="+finallocalvar;
    			}
    		};
    	}
    	
    	public static void main(String args[]){
    		Object obj=new MyOuter4().makeInner(67);
    		System.out.println(obj.toString());
    		
    		MyOuter4 m = new MyOuter4();
    		m.onClick(new OnClickListener() {
    			
    			@Override
    			public void onClick(int id) {
    				System.out.println(id);
    			}
    		});
    	}
    }

 5,Android:Picker(DatePicker、TimerPicker、NumberPicker)

http://www.open-open.com/lib/view/open1448370786298.html

6,使用ListView列表时经常会用到两个事件:
setOnItemClickListener——对象点击事件。当点击列表中的某行记录时,触发该事件,如触摸屏点击以及按键等点击事件。
c——对象选择事件。当选择列表中某行记录时,触发该事件,如使用方向键或轨迹球改变选择对象。
setOnItemClickListener只在点击(轨迹球或确认键)后触发,而setOnItemClickListener而在改变选择对象后就会触发。
想实现点击列表某行触发事件,建议使用setOnItemClickListener事件。

7,viewpager嵌套fragment 里面就是RecyclerView 现在新的app都是用的新控件ListView过时了都

8,TableLayout 属性

tablelayout标签里面的

android:collapseColumns:隐藏指定的列 列起始从0开始

android:shrinkColumns:收缩指定的列以适合屏幕,不会挤出屏幕

android:stretchColumns:尽量把指定的列填充空白部分

放在tableRow里面的子控件里面的

android:layout_column:控件在TableRow中所处的列

android:layout_span:该控件所跨越的列数

9,Android中的Parcelable接口

Android中实现序列化有两个选择:一是实现Serializable接口(是JavaSE本身就支持的),一是实现Parcelable接口(是Android特有功能,效率比实现Serializable接口高效,可用于Intent数据传递,也可以用于进程间通信(IPC))。实现Serializable接口非常简单,声明一下就可以了,而实现Parcelable接口稍微复杂一些,但效率更高,推荐用这种方法提高性能。

注:Android中Intent传递对象有两种方法:一是Bundle.putSerializable(Key,Object),另一种是Bundle.putParcelable(Key,Object)。当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口。

http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html

原文地址:https://www.cnblogs.com/as3lib/p/6107636.html