Android-编写Activity
一 创建新的Activity
1 创建Activity及相关视图文件Layout(View)
2 配置Androidmanifest.xml
3 重载onCreate(), 绑定Activity和layout(view)
setContentView工作机制:
Activity里面的setContentView调用->framework层中window这个抽象类的子类phonewindow中的setContentView去初始化xml界面元素
程序界面加载的方式:
方式一:压力泵inflater():
下面的两句代码功能相同
setContentView(R.layout.layout_activity1);
this.getWindow().setContentView(this.getLayoutInflater().inflate(R.layout.layout_activity1, null));
方式二:addView()->view()
4 为View(Layout)添加必要的组件
如何动态编码来控制界面:
建立界面控件树的概念,控件树层层嵌套的树状结构。
例如button是嵌套在linearlayout中的
常用到的方法是findViewById()根据R类中的id找到资源
5 在onCreat()中实现初始化业务逻辑
加入事件处理:
setOnClickListener,需要用到java匿名内部类
事件机制的要素:
事件的主体即发生的对象
事件的监听函数设置
事件的逻辑代码
二 Activity之间的切换以及传值
1 主Activity1与子Activity2之间切换
与正常的Activity间切换
Activity1:构建intent对象, 然后设置属性, 在startActivity;
Activity2:构建intent对象接收Activity1发送的intent对象,之后进行业务逻辑
与条件不完整的Activity间切换
在manifest文件中注册的新的Activity2的属性不完整,例如没有名字等,也可以指定系统自带的Activity,比如拨号界面
2 主Activity1与子Activity2之间传值
主Activity1传入值, Activity2接收值
Activity1:构建intent对象, 然后设置属性,含有某些值, 在startActivity;
Activity2:构建intent对象接收Activity1发送的intent对象,之后进行业务逻辑,接收值等
主Activity1接收Activity2的返回值
Activity1:构建intent对象, 然后设置属性,含有某些值, 在startActivityForResult;
Activity2:构建intent对象接收Activity1发送的intent对象,之后进行业务逻辑,接收值,返回值setResult等,最后finish()关闭这个Activity2
Activity1:重写onActivityResult函数用来接受值