安卓学习笔记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+"\nfinalLocalvar="+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