安卓创建一个新的页面(XxxActvity)
1.右键包名->new-> class
2.继承自系统的Activity,一般这样的类,我们起名是XxxActivty
3.创建一个布局文件,layout文件夹中创建一个布局文件
4.复写Activity的onCreate方法,setContentView中引用布局文件
5.在Menifest.xml文件中的application节点下添加
<Actvity android:name =".XxxActivity"></Activity>
这样一个新的Activity就创建完成了.
然后就需要从第一个页面中打开这个新的页面
打开Activity的方式有两种
一.显示意图
//参数,第一个是Context对像,Activity本身就是,第二个要找开的Activity的字节码文件
Intent intent = new Intent(this,XxxActivity.class);
this.startActivity(intent);
//也可以写成
Intent intent = new Intent();
intent.setClass(XxxActivity.class);
this.startActivity(intent);
二.隐示意图
1.在AndroidMenifest声名中<Activity>节点下添加<intent-filter>
<intent-filter>
<!-- 添加一个事件类开,当有事这个事件过来时 -->
<action android:name="start_xxx_activity" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
2.在代码中使用
//参数是一个字符串表示事件类型,自己定义
Intent intent = new Intent("start_xxx_activity");
this.startActvity(intent);
//也可以写成
Intent intent = new Intent();
intent.setAction("start_xxx_activity");
this.startActivity(intent);
在第一个Activity中添加打开第二个Activity的入口
显示意图打开在Actvity:
在第一个Activity中的onCreate方法中添加代码
TextView textView = findViewByid(R.id.text_view);
//参数是一个匿名内部类
textView.setoncClicklistener(new OnClickListener(){
public void onclick(View view){
Intent intent = new Intent(this,XxxActivity.class);
this.startActivity(intent);
}
});
这种传入一个对象,当方法被调用时反过来执行你事先定义在对象里面的方法的方式,就是回调(个人理解)
百度回调函数解释
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函
数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实
现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
所有的控件都有setOnclick()方法,也就是说现在的安卓控件都可以设置点击事件
给控件设置回调方法有四种方式:
1.先定义一个自己的class文件,实现View.OnclickListener接口
复写onClick()方法
2.当前Activity实现View.OnclickListener接口
复写onClick()方法
3.上面实现的方式,使用匿名内部类的方式,
复写onClick()方法
4.在文件中给控件添加onclick="方法名"属性
在Activity访求中写一个 public void 方法名(View view) 方法,在方法体中实现点击操作
注意:方法必须public且返回值为空,参数是View,方法名和布局文件中声名的onlick属性值一至
在开发中最常用的方式就是使用匿名内部类和当前类实现OnClickListener接口的方式为控件设置回调
结束Activity
想要结束一个Activity,只需要调用内部的finish()方法,这个Activity就会结束同时,在Actvity栈中移除这个Activity
this.finish()
Activity四种启动模式
在AndroidMenifest.xml中的Activty节点中添加属性android:launchMode="standard"
1.standard
标准的启动模式,当Activity打开后就会把这个Activity压入到Activity栈的栈
底,即使是相同的Activity也不会互相影响
2.singleTop
栈顶唯一,当一个Activity已经在栈顶,那么这个Activity不会再压入一个相同的
Activity到栈顶,如果栈顶不是而是栈底存在Activity一样会在栈顶压入一个实例
3.singleTask
单独实例,当栈中已经存这个Activity的实例,就会把这个实例拿出来放到栈顶,
同时也会清除掉这个Activity所在位置顶部的所有Activity,从而使当前Activity成为栈顶
4.singleInstance
单独任务栈,当Activity被打开时,会单独开一个任务栈存放这个Activity